I work at GitHub, as a principal engineer. I
founded the GitHub Actions
project. Before that, I built Spokes,
which is the distributed system that stores more than 100 million Git
repositories, and Governor,
which performs logging and adaptive rate limiting for Git servers. I've given
a public talk about each:
Before GitHub, I was a software architect at BlueStripe
working mostly on the data collection bits in the company's
application management tool,
My work there was all about causality,
asynchrony, performance measurement, and creative kernel development.
Before BlueStripe, I was a postdoctoral associate in the Computer Science Department at Cornell University. I worked
with Gün Sirer
and Fred Schneider
on device drivers and
in the Nexus
I got my PhD at Duke
University under the supervision of Amin Vahdat and Janet
Wiener. I previously earned a Master's degree at Duke and a
Bachelor's degree from the University of Virginia.
I live in Chapel Hill, NC
with my wife Kristina. When I'm not
busy working, I enjoy sailing, photography, hiking, skiing, cycling, and
I maintain the Oracle of Bacon. I
grew up in Charlottesville,
My areas of interest are distributed systems, computer networks, and
operating systems, with a particular focus on monitoring and discovery.
I have worked on the Nexus
trusted operating system, reference monitors for user-space drivers, and BGP
security. Before that, I worked on
distributed systems debugging and performance analysis (Pip and Project 5),
keyword searching, and wide-area available-bandwidth measurement.
- Peer-to-Peer Keyword Search: A Retrospective, Patrick Reynolds and Amin Vahdat. In Proceedings of Middleware, Beijing, China, Dec 2013. (pdf)
- Logical Attestation: An Authorization Architecture for Trustworthy Computing, Emin Gün Sirer, Willem de Bruijn, Patrick Reynolds, Alan Shieh, Kevin Walsh, Dan Williams, and Fred B. Schneider. In Proceedings of SOSP, Cascais, Portugal, Oct 2011. (pdf)
- A Preliminary Assessment of Small World Scholarship Networks in Criminology and Criminal Justice, Stephen K. Rice, Matthew J. Hickman, and Patrick Reynolds. In Journal of Criminal Justice Education, Volume 22, Issue 1, 2011.
- Device Driver Safety Through a Reference Validation Mechanism,
Dan Williams, Patrick Reynolds, Kevin Walsh, Emin Gün Sirer, and Fred B. Schneider. In Proceedings of OSDI, San Diego, CA, Dec 2008. (pdf)
- Pip: Detecting the Unexpected in Distributed Systems, Patrick
Reynolds, Charles Killian, Janet L. Wiener, Jeffrey C. Mogul, Mehul A.
Shah, and Amin Vahdat. In Proceedings of NSDI, San Jose,
CA, May 2006.
- WAP5: Black-Box Performance Debugging for Wide-Area Systems,
Patrick Reynolds, Janet L. Wiener, Jeffrey C. Mogul, Marcos K. Aguilera,
and Amin Vahdat. In Proceedings of WWW, Edinburgh,
Scotland, May 2006. (pdf)
- Performance Debugging for Distributed Systems of Black Boxes,
Marcos K. Aguilera, Jeffrey C. Mogul, Janet L. Wiener, Patrick Reynolds,
and Athicha Muthitacharoen. In Proceedings of the 19th ACM Symposium on
Operating System Principles (SOSP), Bolton Landing, NY, October 2003.
(ps.gz | pdf)
- Efficient Peer-to-Peer Keyword Searching, Patrick Reynolds and
Amin Vahdat. In Proceedings of the International Middleware
Conference, Rio de Janeiro, Brazil, June 2003.
(ps.gz | pdf)
- Self-organizing Subsets: From Each According to His Abilities, To Each
According to His Needs, Amin Vahdat, Jeffrey S. Chase, Rebecca Braynard,
Dejan Kostic, Patrick Reynolds, and Adolfo Rodriguez. In Proceedings of the
International Workshop on Peer To Peer Systems (IPTPS), Cambridge, MA,
March 2002. (pdf)
- XMon-BGP: Securing BGP Using External Security Monitors (poster).
4nd ACM Symposium on Networked Systems Design and Implementation (NSDI),
Boston, MA, April 2007.
- Experiences with Pip: Finding Unexpected Behavior in
Distributed Systems (poster).
20th ACM Symposium on Operating Systems Principles, Brigton, UK, October 2005.
- Spring'06: CPS182s:
Technical and Social Foundations of the Internet (instructor)
- Fall'00: CPS108:
Software Design and Implementation (teaching assistant)
- Spring'00: CPS196.1:
Computer Networks and Distributed Systems (teaching assistant)