Five engagements, written up the way I’d want to read them.
Each one follows the same spine: context, problem, constraints, approach, outcome, and what I’d do differently. The constraints section is usually the interesting one.
Unifying 500+ tables from 50+ source systems into one real-time customer view
A streaming customer data platform built without a freeze window on any source system, serving 1M+ API calls at peak hour in real time, with a Snowflake gold layer that cut a common downstream query from about three seconds to roughly 500 milliseconds.
Making Kafka self-service for 200+ teams without letting any of them near production data
One control plane where naming, retention, ownership and access are enforced at request time rather than agreed in a document, still in production and governing 5,000+ topics.
Migrating a production Kafka estate to Confluent Private Service Connect
Every producer and consumer moved to private networking incrementally, team by team, with zero data loss and no re-keying of existing topics, alongside a new real-time data exchange platform for secure, cross-cluster sharing.
Building a hiring platform where agentic work stays offline and live recommendations stay deterministic
A nine-service platform serving 1,000+ employers and 20,000+ jobseekers, where agentic matching work runs entirely offline and the live recommendation path never calls a model.
Shipping a public product alone, from the model call to the deployment pipeline
A live product doing three jobs, a resume builder, an ATS check and a LinkedIn optimiser, with its own API, front end and deployment pipeline, built and run by one person.