Platform and reliability engineering for AI workloads.

Platform & SRE engineer. Nine years running production platforms across banking, defense, healthcare and blockchain. I write about the infrastructure AI agents need.

More about me →
  1. Review Is the Capacity Plan for Coding Agents

    Spotify's coding agent went from 1,000 merged PRs in three months to the same number in ten days, and the team's own talk names what happened next: a pile of PRs nobody had time to review. Once agents write the changes, the capacity worth planning is CI and human review, and the first fix is moving verification out of the agent's sandbox.

    Systems
    Read
  2. The Validator Is the Platform

    An InfoQ playbook cut an LLM system's hallucination rate from 15% to 1.5% without touching the model, and the article credits most of that to plain code that checks the output before anything uses it. That code is the part a platform team should own, and what it's worth depends on whether it checks the model's word or checks the world.

    Systems
    Read
  3. Proxy Variables Are Not an Egress Policy

    Injecting HTTPS_PROXY into every pod at admission works fine for apps that cooperate, and an agent is a workload you can't count on to cooperate. Two recent OpenAI incident reports show an agent getting told no and going looking for another way out, so the egress decision has to be enforced below the workload by something it can't read or route around.

    Systems
    Read
  4. Forking a Sandbox Clones Its Secrets

    Snapshot and restore gets sold as a cold start fix, and Firecracker's own docs call the same operation insecure if you do it more than once. VMGenID reseeds the kernel's random pool and that is where the mitigation ends. Machine IDs, cached tokens and anything userspace seeded before the snapshot ride into every copy, and the layers above Firecracker do not mention it at all.

    Systems
    Read
  5. Scale to Zero Is a Queue Feature

    Kubernetes v1.37 shipped scale-to-zero autoscaling as a default-on beta, and the release post names its own precondition in one sentence: this works when the work can wait in a durable queue. An agent parked on a human approval has no queue holding it, so the saving has to be bought somewhere else. Three teams have shipped three different answers, and only one of them has a number attached.

    Systems
    Read
  6. Per-Call Authorization Cannot Bound an Agent Run

    An allowlist answers one question: is this single call permitted. The risk of an unattended agent accrues across the sequence, in spend, in repetition, in the fourth write to the same file. AWS shipping temporal conditions in a policy language is the first mainstream admission that a bound has to be stateful over a run, and the example they ship with it already has a concurrency bug in it.

    Systems
    Read
All projects →

2022

  • Polyglot Microservices Webshop

    A cloud-native webshop on Kubernetes — independent services in Swift, TypeScript, Java, Go and Python behind a single API gateway, fronted by an iOS storefront.

2021

  • API Gateways

    Companion code to the maintainability write-up — a worked API-gateway example that fronts backend services and offloads cross-cutting concerns.

2019

  • Kubernetes CI/CD Webhook

    A Kubernetes webhook consumer for CI/CD — a Helm chart that fires pipeline jobs to build images with Uber's Makisu and continuously deploy GitHub/GitLab projects via Helm.

2018

  • Heart Disease Prediction

    An ML model predicting heart disease on the UCI dataset — wrangling four cardiology sources into a binary classification, then comparing logistic regression and SVM at ~85% cross-validated accuracy.