Peter Saint-Andre: Technology

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).

IETF RFCs

(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 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). 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 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). 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).

Technical Books

XTDG

XMPP: The Definitive Guide. O'Reilly, 2009.

XMPP Extension Protocols

These are 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-0048: Bookmarks

XEP-0059: Result Set Management

XEP-0060: Publish-Subscribe

XEP-0065: SOCKS5 Bytestreams

XEP-0066: Out of Band Data

XEP-0070: Verifying HTTP Requests via XMPP

XEP-0071: XHTML-IM

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-0166: Jingle

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 Dialback

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

Refereed Papers

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.

Non-Refereed Articles

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