I've been working on Internet technologies since 1996, mainly on Jabber / XMPP, an open Internet standard for instant messaging, presence, and real-time collaboration. I've also done work on identity, security, internationalization, and related topics. In March 2012 I completed a two-year term on the IESG as co-director of the Applications Area at the IETF. In my spare time, I run jabber.org and xmpp.net, and even do a bit of programming now and then. Check out my Brutally Honest Résumé for all the gory details.
XMPP: The Definitive Guide. O'Reilly, 2009.
(See also my stats page.)
RFC 7081: CUSAX: Combined Use of the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) (November 2013).
RFC 6993: Instant Messaging and Presence Purpose for the Call-Info Header Field in the Session Initiation Protocol (SIP) (July 2013).
RFC 6963: A Uniform Resource Name (URN) Namespace for Examples (May 2013).
RFC 6869: vCard KIND:device (February 2013).
RFC 6702: Promoting Compliance with Intellectual Property Rights (IPR) Disclosure Rules (August 2012).
RFC 6648: Deprecating the "X-" Prefix and Similar Constructs in Application Protocols (June 2012).
RFC 6473: vCard KIND:application (December 2011).
RFC 6202: Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP (April 2011). Co-authored with S. Loreto, S. Salsano, and G. Wilkins.
RFC 6125: Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS) (March 2011). Co-authored with J. Hodges.
RFC 6122: Extensible Messaging and Presence Protocol (XMPP): Address Format (March 2011).
RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence (March 2011). (Supersedes RFC 3921.)
RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core (March 2011). (Supersedes RFC 3920.)
RFC 5437: Sieve Notification Mechanism: Extensible Messaging and Presence Protocol (XMPP) (January 2009).
RFC 5122: Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP) (February 2008). (Supersedes RFC 4622.)
RFC 4854: A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP) (April 2007).
RFC 4622: Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP) (July 2006).
RFC 4417: Report of the 2004 IAB Messaging Workshop (February 2006). Co-authored with P. Resnick.
RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) (October 2004).
RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) (October 2004).
RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence (October 2004).
RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core (October 2004).
These are only the XEPs I've authored that have advanced to Draft or Final at the XMPP Standards Foundation.
XEP-0004: Data Forms
XEP-0012: Last Activity
XEP-0013: Flexible Offline Message Retrieval
XEP-0016: Privacy Lists
XEP-0020: Feature Negotiation
XEP-0030: Service Discovery
XEP-0033: Extended Stanza Addressing
XEP-0045: Multi-User Chat
XEP-0047: In-Band Bytestreams
XEP-0059: Result Set Management
XEP-0065: SOCKS5 Bytestreams
XEP-0066: Out of Band Data
XEP-0070: Verifying HTTP Requests via XMPP
XEP-0072: SOAP Over XMPP
XEP-0077: In-Band Registration
XEP-0079: Advanced Message Processing
XEP-0080: User Location
XEP-0084: User Avatar
XEP-0085: Chat State Notifications
XEP-0092: Software Version
XEP-0096: SI File Transfer
XEP-0106: JID Escaping
XEP-0107: User Mood
XEP-0108: User Activity
XEP-0115: Entity Capabilities
XEP-0118: User Tune
XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)
XEP-0131: Stanza Headers and Internet Metadata
XEP-0136: Message Archiving
XEP-0138: Stream Compression
XEP-0144: Roster Item Exchange
XEP-0155: Stanza Session Negotiation
XEP-0156: Discovering Alternative XMPP Connection Methods
XEP-0158: CAPTCHA Forms
XEP-0163: Personal Eventing Protocol
XEP-0167: Jingle RTP Sessions
XEP-0172: User Nickname
XEP-0174: Serverless Messaging
XEP-0176: Jingle ICE-UDP Transport Method
XEP-0177: Jingle Raw UDP Transport Method
XEP-0184: Message Delivery Receipts
XEP-0191: Blocking Command
XEP-0198: Stream Management
XEP-0199: XMPP Ping
XEP-0202: Entity Time
XEP-0203: Delayed Delivery
XEP-0206: XMPP Over BOSH
XEP-0220: Server Dialbacmap://firstname.lastname@example.org:993/fetch%3EUID%3E.INBOX%3E1033037 k
XEP-0221: Data Forms Media Element
XEP-0229: Stream Compression with LZW
XEP-0231: Bits of Binary
XEP-0249: Direct MUC Invitations
XEP-0256: Last Activity in Presence
XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
XEP-0261: Jingle In-Band Bytestreams Transport Method
XEP-0262: Use of ZRTP in Jingle RTP Sessions
XEP-0266: Codecs for Jingle Audio
XMPP: Lessons from Ten Years of XML Messaging, IEEE Communications (April 2009).
Jingle: Jabber Does Multimedia, IEEE Multimedia 14:1 (January-March 2007), 90-94.
Streaming XML with Jabber/XMPP, IEEE Internet Computing 9:5 (September-October 2005), 82-89.
Open Source and Open Standards, O'Reilly Network (April 2003). The intersection of open protocols, open-source software, and developer communities.
Jabber: An Introduction, Free Software Magazine (February 2002). Technical article.
Let There Be Jabber, Linux Magazine (August 2001). Technical article.
XML Messaging With Jabber, O'Reilly Network (October 2000). Technical article.
Peter Saint-Andre > Technology