I have been working on and contributing to open-source projects for over 20 years.
Here are some large-scale open-source projects I’ve helped launch or contributed to significantly:
- launched C++ client libraries (2017) for Google Cloud services
- led a multi-company consortium to co-found JanusGraph (2017), an open-source distributed graph database, as a continuation of the abandoned project TitanDB
- early developer of LLVM compiler infrastructure framework at UIUC, before its first public release (2003); later on, after leaving UIUC, I helped start a practice of unit testing by integrating Google C++ testing framework into LLVM test suite and writing the first few unit tests to demonstrate its usefulness
Projects I have helped organizationally or otherwise:
- initiated Google’s participation in Spinnaker with Netflix; first public release was jointly announced (2015) by the two companies
- Jsonnet (2014): functional DSL for configuration which compiles to JSON, inspired by my work on config languages at Google and described in the SRE Workbook chapter on “Configuration Specifics” (2018)
Other projects intended for wide adoption that I have created or contributed to:
- Cloud Launcher: scripts and tools for launching apps on Google Cloud, as well as a mini cloud console
- Code Review Bot: CLA verification, originally written to help manage contributions to JanusGraph
- Autogen: easily add open-source license headers to prepare your project for open-source release
And some smaller personal fun projects:
- Delayed Replay: web app to search for podcasts (via iTunes API) and play them directly from your browser without downloading or installing any software
- Easyfix: making simple fixes easier at scale
- Librarian: simple web app to find full-access books (via Google Books API)
- Polyglot: tools for learning and practicing languages
- Game Builder: a framework for building games and game variations
- Text rendering on HTML5 Canvas
- Stack Exchange answers: code for my answers on Stack Overflow and related sites
A few converter tools:
- yaml2json: YAML ↔ JSON converters
- csv2txf: CSV → TXF for importing financial transactions into financial software such as TurboTax
- xml2json: XML → JSON converter, useful for parsing RSS or Atom feeds (especially podcasts) and converting them to JSON for building a web app; originally written for Delayed Replay