I believe strongly in the craftsmanship component of software engineering. I work collaboratively to build, deploy, and operate highly performant systems at scale with an emphasis on maintainability and quality.
2021 — 2022
San Francisco, California, United States
I led a team of 10+ engineers over six months on a full rebuild of Cambly’s core product, enabling group lessons, a key strategic initiative unlocking new market segments and pricing models.
I led the architecture and implementation of Cambly’s first graph APIs. I selected and integrated new technology, defined best practices for usage, and built tooling to enable feature developers.
I championed operational best practices. I implemented new processes for identifying and triaging production issues. I built new systems for collecting and analyzing production telemetry.
I led a team of six engineers to overhaul the engineering interview process, focusing on equity and inclusion.
2020 — 2020
As the technical leader of the server engineering team, I provided mentorship, code reviews, and architecture reviews. I championed best practices and standards for the entire team. I continued the journey of optimizing application code and cluster configuration to scale with the user base.
I architected and implemented Kevlar, an asynchronous job processing system with dependency management and execution guarantees. We leveraged Kevlar to increase reliability of several key features to >99.9%.
2017 — 2020
As a staff software engineer, in addition to functioning as an individual contributor, I led teams of multiple engineers on several projects. I offered architectural guidance on projects across the team.
I led a team of four engineers to add multi-currency support to Copper. Over the course of nearly a year, we reworked the Opportunity and Lead management component of the application to support multiple currencies, including real-time currency conversion and value aggregation with both fixed and floating exchange rates.
I designed an internal framework for building in-app reporting, reducing the time required to build new reports from weeks to days.
I championed the use of RuboCop for static analysis and code formatting, and integrated it into our continuous integration system.
2015 — 2017
As a senior software engineer, I had the opportunity to work both on features (Ruby on Rails) and on our infrastructure (Postgres, Redis, Elasticsearch, Heroku).
Features
RingCentral integration: I architected and built the server component of Copper's integration with RingCentral. Copper integrates with the RingCentral API to allow users to make calls from within the Copper web application and automatically log call notes. (I also designed and built a working real-time sync of RingCentral call and SMS logs into Copper - but, for strategic reasons, this functionality was not made available to users.)
Developer API: I designed and built several of our first generation of developer APIs, allowing customers to programmatically integrate with Copper.
Zapier: I designed and built our initial integration with Zapier, allowing customers to build automated workflows.
Infrastructure
Citus Migration: In 2017, Copper migrated from a single hosted Postgres to a distributed Postgres cluster using the Citus extension. I built several modifications to ActiveRecord to ensure that ORM-generated queries remained both valid and performant on a distributed database.
Resque Performance Tuning: Copper's real-time sync with Gmail, Google Calendar, and various third-party data enrichment services drives very database-intensive workloads. I routinely monitored and balanced the resources available to each family of background jobs to optimize user-facing responsiveness without overwhelming the database.
PWCompact: I designed and built a system for in-place Postgres table compaction, and used it to reduce our total database size by more than 20% without downtime.
2014 — 2015
San Francisco, CA
As Copper's tenth full-time employee and fifth software engineer, I worked on several of the product's early features, contributing to both the web client (Ember.js) and the server (Ruby on Rails).
Google Calendar integration: Copper syncs Google Calendar events in real time, automatically associates them with relevant records, and tracks them for activity reporting.
Mailchimp integration: Copper integrates with Mailchimp, allowing users to manage email campaigns from within their CRM.
Education
2004 — 2007
University of Michigan
B.S.E.
2004 — 2007