Although I still do some tech advising with startup companies, from 1996 to 2022 I was completely immersed in helping to build out the foundations of the Internet. Among other things I worked on instant messaging (Jabber, telehash), real-time communications (Webex, Talky), the Internet of Things (Filament), security (TLS, PKIX), identity (OAuth), internationalization (PRECIS), and the Web (Firefox). Professionally I was a CTO, architect, product manager, salesperson, systems analyst, technical writer, and programmer for small startups and large enterprises alike. When it comes to open source and open standards, I authored over a hundred technical specifications, served as an Area Director at the IETF and as Executive Director of the XSF, and operated the Jabber.org messaging service with 1+ million users. Further details can be found in my résumé (more amusingly catalogued in the brutally honest version).
(See also my datatracker page.)
RFC 9525: Service Identity in TLS (November 2023). Supersedes RFC 6125. Authored with Rich Salz.
RFC 9325: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) (November 2022). Supersedes RFC 7525. Authored with Yaron Sheffer and Thomas Fossati.
RFC 9280: RFC Editor Model (Version 3) (June 2022). Supersedes RFC 8728.
RFC 8838: Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol (January 2021). Authored with Emil Ivov and Justin Uberti.
RFC 8600: Using Extensible Messaging and Presence Protocol (XMPP) for Security Information Exchange (June 2019). Authored with Nancy Cam-Winget, Syam Appala, and Scott Pope.
RFC 8266: Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames (October 2017).
RFC 8265: Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords (October 2017). Authored with Alexey Melnikov. Supersedes RFC 7613.
RFC 8264: PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols (October 2017). Authored with Marc Blanchet. Supersedes RFC 7564.
RFC 8141: Uniform Resource Names (April 2017). Authored with John Klensin. Supersedes RFC 2141.
RFC 8048: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Presence (December 2016).
RFC 7702: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Groupchat (December 2015). Authored with Saúl Ibarra Corretge and Salvatore Loreto.
RFC 7700: Preparation, Enforcement, and Comparison of Internationalized Strings Representing Nicknames (December 2015).
RFC 7712: Domain Name Associations (DNA) in the Extensible Messaging and Presence Protocol (XMPP) (November 2015). Authored with Matt Miller and Philipp Hancke.
RFC 7711: PKIX over Secure HTTP (POSH) (November 2015). Authored with Matt Miller.
RFC 7649: The Jabber Scribe Role at IETF Meetings (September 2015). Authored with Dan York.
RFC 7622: Extensible Messaging and Presence Protocol (XMPP): Address Format (September 2015). Supersedes RFC 6122.
RFC 7613: Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords (August 2015). Authored with Alexey Melnikov.
RFC 7590: Use of Transport Layer Security (TLS) in the Extensible Messaging and Presence Protocol (XMPP) (June 2015). Authored with Thijs Alkemade.
RFC 7573: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): One-to-One Text Chat Sessions (June 2015). Authored with Salvatore Loreto.
RFC 7572: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Instant Messaging (June 2015). Authored with Avshalom Houri and Joe Hildebrand.
RFC 7565: The 'acct' URI Scheme (May 2015).
RFC 7564: PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols (May 2015). Authored with Marc Blanchet.
RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) (May 2015). Authored with Yaron Sheffer and Ralph Holz.
RFC 7457: Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS) (February 2015). Authored with Yaron Sheffer and Ralph Holz.
RFC 7259: The Jabber-ID Header Field (May 2014).
RFC 7248: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Presence (May 2014). Authored with Avshalom Houri and Joe Hildebrand.
RFC 7247: Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Architecture, Addresses, and Error Handling (May 2014). Authored with Avshalom Houri and Joe Hildebrand.
RFC 7081: CUSAX: Combined Use of the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) (November 2013). Authored with Emil Ivov and Enrico Marocco.
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). Authored with Tim Polk.
RFC 6648: Deprecating the "X-" Prefix and Similar Constructs in Application Protocols (June 2012). Authored with Dave Crocker and Mark Nottingham.
RFC 6473: vCard KIND:application (December 2011). Authored with Gonzalo Salguiero and Joe Clarke.
RFC 6202: Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP (April 2011). Authored with Salvatore Loreto, Stefano Salsano, and Greg 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). Authored with Jeff 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). Authored with Alexey Melnikov.
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 4417: Report of the 2004 IAB Messaging Workshop (February 2006). Authored with Pete 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).
XMPP: The Definitive Guide. O'Reilly, 2009.
These are the XEPs I've authored that have advanced to Draft or Final at the XMPP Standards Foundation.
XEP-0013: Flexible Offline Message Retrieval
XEP-0033: Extended Stanza Addressing
XEP-0059: Result Set Management
XEP-0070: Verifying HTTP Requests via XMPP
XEP-0077: In-Band Registration
XEP-0079: Advanced Message Processing
XEP-0085: Chat State Notifications
XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)
XEP-0131: Stanza Headers and Internet Metadata
XEP-0144: Roster Item Exchange
XEP-0155: Stanza Session Negotiation
XEP-0156: Discovering Alternative XMPP Connection Methods
XEP-0163: Personal Eventing Protocol
XEP-0174: Serverless Messaging
XEP-0176: Jingle ICE-UDP Transport Method
XEP-0177: Jingle Raw UDP Transport Method
XEP-0184: Message Delivery Receipts
XEP-0221: Data Forms Media Element
XEP-0229: Stream Compression with LZW
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