Growth-minded Principal Software Engineer with 25 years experience building apps, services, and cloud infra across diverse languages and technologies. Obsesses over the details.
Overview
15
15
years of professional experience
Work History
Principal Software Engineer
Prophet Town
06.2024 - Current
Set technical standards for a 30-person software engineering consulting agency.
Led technical projects for a variety of tech companies, including project management, customer relationships, weekly syncs, and overall execution.
Senior Staff Engineer
Carta
08.2020 - 05.2024
Lead and managed the Developer Experience team within the Platform Infrastructure organization
Designed a self-service Internal Developer Platform to enable Carta's 300 product engineers to effectively utilize the vast array of systems that make up Platform Infrastructure without needing to become experts in cloud infrastructure
Took ownership of existing cloud infrastructure for a highly regulated FINRA-compliant product space as the sole SRE for CartaX, and helped build out a new team to support it
Senior Member of Technical Staff
eBay
09.2017 - 07.2020
Built and documented new features such as GitHub, Jira, and PagerDuty integration for Yetibot, used by teams across eBay in our 10,000-person Slack instance
Gave a talk on Yetibot at Clojure/north in Toronto
Ran a Clojure workshop at eBay's San Jose campus
Founding Software Engineer
Lab79
02.2017 - 09.2017
Designed and built foundational infrastructure, Clojure services, and ClojureScript frontend apps for an early-stage Electronic Health Records (EHR) startup in the heavily regulated medical space
Created an expressive, schema-agnostic Authorization solution for Datomic Datalog, mirroring the shape of Datomic Pull queries to protect patient data with support for arbitrarily nested collections in Clojure
Designed and built secure, HIPAA-compliant cloud native infrastructure on Google Cloud Platform using Terraform, Kubernetes (GKE), Helm, Vault, and Docker
Member of Technical Staff
eBay
08.2013 - 02.2017
Contributed foundational features to a Scala-based horizontally-distributed columnar in-memory data store supporting sub-second, complex aggregations on top of hundreds of billions of listings
Developed distributed partitioning functionality using ZooKeeper and Ketama consistent hashing
Developed real time coordinated consumption of Kafka streams to support automatic failover while ensuring no messages were lost in a near-real-time ingestion pipeline
Added support for SQL queries using Apache Calcite and compiled queries
Front End Tech Lead
Decide.com
Seattle
01.2011 - 08.2013
Built the front end of Decide.com from scratch, heavily utilizing Backbone.js for client-side interaction and rendering with shared client and server side Mustache templates
Introduced Scala to the engineering organization and lead migration of server-side code from legacy Java to Scala
Lead migration of the Decide.com front end from legacy Spring-based web app to Rails with JRuby to facilitate faster product iteration and experimentation
Created engineering standards for coding conventions, documentation requirements, communication between developers, code reviews, and technical decisions
Skills
Engineering leadership
Developer experience
Distributed computing
Functional programming
Modern cloud infrastructure
Container orchestration
Clojure and Scala
TypeScript and React
API design
Microservices architecture
Select Open Source
Yetibot is a chatops platform written in Clojure. Originally started as a way to learn Clojure in 2011, it served as the entry into the Functional Programming rabbit hole, including ongoing discovery of Haskell, Unison, and Category Theory. Yetibot continues to be actively developed over a decade later.
dec is a library written in Clojure for handling environment config. It builds arbitrarily nested data structures from simple KV strings.
lein-inferv is an opinionated way of inferring a strictly increasing version from the current date, time, and git version for Leiningen projects.