Writing
Field notes from production and leading engineers
Articles on distributed systems, engineering leadership, delivery and AI in engineering. Pick a topic, or read everything newest first.
2026
- Human-in-the-loop is not a security boundaryAI in engineering8 min read
Two AI agents deleted production databases. Neither was stopped by its instructions. Approval improves an agent's decisions; it doesn't limit what the agent can do. Why agent safety is a permissions and architecture problem first, how to size the risk of an action, and what humans are actually for.
- Tech debt snowballs, then it avalanchesLeadership5 min read
Technical debt rarely fails slowly. It grows quietly for months, then one day nothing can move until it's fixed. How to spot the snowball, why you don't get to choose the avalanche day, and what a lead can do before it arrives.
- Deep Work, read as a lead engineerLeadership · Review3 min read
Cal Newport's Deep Work argues that focus is getting rarer just as it becomes more valuable. Three ideas I'm taking from it, and the tension it doesn't resolve for anyone who leads a team.
- Don't build business logic on an expiry notificationDistributed systems4 min read
A background process that was going to be triggered by a cache telling us a key had expired. Why that's fragile, the queue-and-scheduler design we chose instead, and why we deliberately stopped short of a full event-driven rebuild.
- Last write wins, and the customer losesDistributed systems3 min read
A multi-tab bug that looked like a one-off defect turned out to be a design assumption the product had outgrown. Why I argued for fixing the model, not just the bug, and how to raise that kind of risk.
- Release risk usually isn't in the codeDelivery3 min read
Most release risk I've dealt with wasn't a software defect. It was environment differences, unclear ownership of manual steps, late changes and rollback plans nobody had tried. What I learned preparing a high-risk platform migration.
- Being right is not the jobLeadership · Review2 min read
Cong Wang's essay on why he stopped arguing, a 2,500-year-old line from Lao Tzu, and what changes when you're the one who has to make technical decisions stick.
- Moving my blog off WordPress with an AI agent: what I delegated, and what I didn'tAI in engineering4 min read
I migrated this site from WordPress to a static site in one afternoon, working with an AI agent. The speed was impressive. The more useful lessons were about where the agent stopped and I had to decide.
Looking for older Sitecore and .NET how-tos? Browse the 2021–23 archive →