Fifteen years building and scaling distributed systems, across the industry's move from bare-metal servers and monoliths to cloud-native, Kubernetes and GitOps. I take on the work teams postpone: technical debt, CI/CD built from nothing, and keeping things up.
One product end to end: backend, frontend and the infrastructure under both. Most of the work was the database under growing load — replication to spread reads, sharding to spread writes, and caching in tiers with explicit rules about which data is allowed to go stale. Most of the gain came from reading query plans rather than from buying hardware.
Backend and frontend on the same product, plus the infrastructure underneath it — the arrangement that makes the DevOps label mean something rather than being a job title. Owning the deploy changes how you write the code.
Most of the engineering effort went into the database tier under growing load: streaming replication to take reads off the primary, partitioning to keep the hot set small, and a caching hierarchy with an invalidation story designed before the cache existed.
Key Achievements
Scaled the database tier through replication and partitioning
Designed a four-tier cache with explicit invalidation
Took reads off the primary without changing application code
Owned services end to end, from schema to deploy
Cut p99 query time by reading plans rather than adding hardware