Responsible for making server application engineering easy, fast, and safe.
- Led an initiative to unify the test and development environments for all parts of the server codebase, including integration environments requiring microservices to coordinate with each other
- Implemented per-route alerting for all Python endpoints
- Described the consistency implications of Dropbox's database access patterns, and produced recommendations for changing them
- Worked with the team responsible for Dropbox's custom database to define and implement APIs for data access with clear, well-defined consistency semantics
- Participated in the rotation responsible for deploying code to the majority of Dropbox's application-level servers
- Helped port core Dropbox filesystem code from Python to Go
- Led recovery and reconstruction from data storage inconsistencies
- Participated in Dropbox's catchall server on-call rotation
- Contributor to mypy, a static typechecker for Python, with a focus on making function types flexible and exact
Worked on a live-updating JavaScript web application framework and a hosting environment designed to work with it.
- Created key parts of an application hosting environment for Meteor apps, including a distributed scheduler
- Designed and implemented automatic updating of the hosting environment across multiple machines, avoiding downtime in hosted applications
- Implemented update logic for hosted Meteor applications, also without downtime
- Wrote an automated testing server, with a web front-end that allows users to easily see differences in test results between runs
- Co-wrote the DDP (Meteor's data and RPC protocol) version pre-1 specification and implemented many of the necessary framework features to support it
- In an on-call rotation, fixed operational problems with the hosting environment and the MongoDB deployment it depends on
Designed and implemented programming language features for StreamBase StreamSQL EventFlow, a stream-relational programming language for event-driven systems that compiles to JVM bytecode.
- Led language evolution efforts, including requirements gathering from field engineers, as well as defining, implementing, and refining language features
- Designed and implemented Capture Fields, a modularity feature specifically useful in EventFlow and similar languages
- Implemented functions as a first-class data type in EventFlow
- Decreased latency for EventFlow programs by improving the runtime environment
- Developed and communicated best practices for software engineers using EventFlow
- Wrote frameworks in EventFlow for automating securities trading tasks
As a polyglot programmer, I learn new languages and tools quickly. At any given time I have about three programming languages in main memory, with quite a few more swapped to disk. Right now I have Python, Go, and some Scala paged in.
- M.Eng. in Electrical Engineering and Computer Science (2006-2007)
- Research project involving information flow control in operating systems
- Teaching Assistant for Laboratory in Software Engineering
- S.B. in Electrical Engineering and Computer Science (2002-2006)
Organized and taught a class in computer science at the San Francisco LGBT Center.