Work

Work I've led over my career.

Autonomous agents, safely contained

~6 months
design → GA
Design to general availabilityA single bar spanning the project from design to general availability, about six months.designGA~6 months · design → GA
  1. 01 problemAutonomous offensive-security agents had to assess paying customers' real web applications without being able to misbehave.
  2. 02 what I didI architected the system (an API server and async workers orchestrating assessments), led the threat modelling and designed the agent controls: prompt-injection handling for untrusted content from targets, tool-misuse limits, an audit trail of decisions and tool calls. I built a hardened sandbox: gVisor pods under rootless Podman with no network of their own, seccomp, and two-layer egress control rejecting private and metadata addresses. Agents use production LLM APIs with guardrails, evals and MCP tools.
  3. 03 resultDesign to general availability with paying customers in about six months, built with agentic development. I was one of the team's first two engineers.
  • gVisor
  • rootless Podman
  • seccomp
  • egress control
  • MCP
  • evals

A platform 50 teams chose

1 → ~50
teams, moved by choice
teams on the platform
Adoption over timeA smooth S-shaped curve rising from one team to about fifty. Made-up shape, not measured data.
time →
Illustrative shape: adoption from 1 to ~50 teams
  1. 01 problemA bank needed an internal developer platform on Kubernetes its teams would want and its security department could stand behind.
  2. 02 what I didPrincipal architect, product owner and people manager for ~15 engineers, half through team leads. We designed around a single tenant's needs, with purpose-built tooling. With the bank's security department I defined new cloud-native security standards and built them in: default-deny networking, admission policies rejecting non-compliant workloads, image scanning at build, deploy and run time, SIEM log forwarding. I owned the roadmap and build-vs-buy decisions, reusing the bank's existing identity, secrets and vulnerability-management tooling.
  3. 03 resultFrom one tenant to about 50 teams, over 250 engineers. Nobody was told to move; teams onboarded because it was useful.
  • Kubernetes
  • default-deny networking
  • admission policies
  • image scanning
  • SIEM

From two releases a year to every few days

2/yr → every few days
releases
Releases needing hotfixesTwo bars, 100% before and ~10% after.Releases needing hotfixes100%before~10%after
Before and after
  1. 01 problemA company-wide CRM monolith shipped twice a year; every release needed hotfixes.
  2. 02 what I didAs principal engineer, I changed how the team shipped, bringing them along rather than enforcing. We rebuilt the CI/CD path to production, added automated pull-request compliance checks and unit, integration and load tests, moved to trunk-based development, and began splitting the monolith into independently deployable services.
  3. 03 resultFrom two releases a year to production deploys every few days; releases needing hotfixes fell from 100% to ~10%.
  • CI/CD
  • trunk-based development
  • pull-request checks
  • load tests

60M concurrent users

60M
concurrent users
Multi-region, active-activeSeveral regions, each serving users directly, with traffic flowing between them.regionregionregion60M concurrent users
  1. 01 problemA platform serving 60 million concurrent users, active-active across regions.
  2. 02 what I didI helped design and scale it on multiple Kubernetes clusters, each hosting hundreds of tenants. I led and improved the internal Kubernetes-based PaaS, built highly available REST APIs and CI/CD pipelines for microservices, and delivered zero-downtime database and API performance work.
  3. 03 resultThe platform supported 60 million concurrent users and thousands of applications.
  • Kubernetes
  • active-active
  • REST APIs
  • CI/CD
  • microservices