Blog
Field notes on software architecture, AWS, AI architecture, and building with Claude.
- AI as a software engineering workforce
When agents can read a codebase, split up the work, change files, run tests and review each other’s PRs, the scarce skill stops being how fast you write code and becomes how well you design, orchestrate and govern the system doing it.
- Why agents fail at scale — and how we can stop it
Loops that never end, context that balloons, costs that 1000×, agents with their hands on the controls — the failures that actually bite in production, and the guardrails that tame them.
- Designing agentic systems that don't fall over in production
A practical framework for putting LLM agents on the critical path: treat the model as an unreliable service, validate every output, make each step observable, bound the blast radius, and cap the loop.
- A cost-aware reference architecture for serverless on AWS
How I price a request up front, structure Lambda, EventBridge and DynamoDB around it, and hunt down the multipliers that make serverless bills surprising.
- Prompt architecture: treating context like a system you design
Layering the context window from stable to volatile, budgeting every part, keeping state outside it, and designing tools like a real API.
- The seams that matter: drawing service boundaries that hold up
Using co-change data to find the seams, rules that keep a boundary a boundary, and a strangler migration that never bets the system.
- Evaluating LLM features without fooling yourself
Why vibe checks fail, how to build an eval harness that catches regressions before users do, and the ways the numbers lie.
- Multi-account AWS without the operational headache
OUs grouped by policy, SCP and detective guardrails, federated identity, centralised logging and networking, and automated account vending.
- Designing for change: the only constant in real systems
Telling one-way doors from two-way doors, turning the risky ones reversible, and putting seams only where change is likely.