Making agentic AI reliable in production.

Platform & SRE engineer. Nine years shipping cloud-native platforms across banking, defense, healthcare and blockchain — now building the infrastructure behind production AI.

More about me →
  1. 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
  2. The Pod Is the Wrong Unit for an Agent

    A Kubernetes scheduler knows two workload shapes and an agent is neither of them. The usual reading is that agents are bursty and idle, so pod-per-agent wastes money. The deeper problem is that an agent is three things with three different lifetimes, and a pod makes you give all three the same one. Anthropic, the Kubernetes Agent Sandbox project and kagent all unbundle those lifetimes, and they disagree about which piece keeps the pod.

    Systems
    Read
  3. Comprehension Debt Comes Due at Incident Time

    Agent-assisted teams are not shipping worse code. They are shipping code nobody on the team has had to be wrong about yet, and the process that used to build that understanding has been competed away against a peer shipping rate. A study of 26,000 students shows the shape of it, and Anthropic's own reliability engineers name the risk out loud.

    Systems
    Read
  4. Your Platform Has a New User Class, and It Does Not Use the UI

    The tools you buy have already rebuilt their primary interfaces for a reader that is not a person. Vercel shipped a language whose compiler output targets an agent, and Meta shipped a design system whose API, docs and CLI are designed together so a person and an assistant build the same way. Internal platforms are still assuming a human at a keyboard, and that assumption is what makes them legacy.

    Systems
    Read
  5. Your Model Provider Ships the Worst SLO in Your Stack

    The only Claude tier that ever named an uptime number targeted 99.5%, and it is no longer available for purchase. Everything else runs on documented best-effort availability. That is a weaker commitment than the cheapest tier of commodity compute, and almost nobody architects around it.

    Systems
    Read
  6. Agent Skills Are Speed-Running Package Management

    In four months skills went from loose markdown to registries, installers and a content-hash lockfile. My own machine has 67 entries in ~/.claude/skills and 61 of them are broken symlinks pointing at a source that no longer exists. The ecosystem is rediscovering npm's primitives in npm's original order, which puts provenance last.

    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.