I love APIs, coffee, and the Oxford comma. I am a full stack engineer working in Go, TypeScript, and Python. I have exceled in a number of roles in the Software Development Lifecycle, but my passion for making things makes me thrive in the role of individual contributer. I have been programming since age eight, and have always enjoyed seeing ideas come to life in my programs. I love to ship elegant code that solves real problems, and iterate based on real feedback from customers. I want to write software that improves people's lives, and which supports our abilities and enriches our relationships outside of the virtual world.

Case Studies

Z100 logo

I led a team of five engineers in completely redesigning the software that runs station sites like Z100.com. These sites were driven by a Python form post application with poor hit rate in Fastly. We reimagined it from the ground up, rebuilding it as an isometric React application with a GraphQL backend. We built a custom plugin for graphql-codegen that allowed us to generate typed SDKs for our GraphQL API Gateway, taking advantage of Automatic Persisted Queries in Apollo server to dramatically improve time to first byte for both first page load and client-side load of the application.

StrikeTracker logo

While employed at Highwinds, I led the team responsible for the public API and customer portal. We replaced a Swing and Flex application with a new PHP backend and AngularJS frontend. We enabled full-site delivery through the CDN, and built a compatibility layer that allowed us to maintain backwards compatibility with API integrations while rolling out a new version of the API that supported new CDN features that had been released since the portal's inception. The frontend was entirely built on top of the new API, allowing us to ensure that the public API had first-class support for implementers like Microsoft, Valve, and Giphy. Once Highwinds was acquired by StackPath, I was in charge of combining the best-in-breed technology from MaxCDN, Highwinds, and StackPath into a single self-serve secure CDN offering.

YouVersion logo

Due to latency requirements on the APIs that served our over 125 million mobile users, we were unable to capture metrics inside of the request cycle. With an ever-increasing volume of traffic coming to the platform, I built up a petabyte-scale log processing pipeline to gather metrics from our three generations of public APIs. For this, I used fluentd to push logs from the edge to S3, then use Elastic MapReduce to process the logs and pull out relevant metrics, finally pushing them to BigQuery for analysis. I then built a multi-tenant business intelligence suite in Python and deployed it to Google AppEngine so our content providers could see the performance of their content on the platform.