Everything I work on is an exercise in making unreliable things behave reliably. Patterns rarely do that; getting the trade-offs right does. For years that meant distributed systems — consistency, failure, scale, time. Now it means the same discipline applied to AI components that are non‑deterministic by design.
Currently a Staff Engineer at a fintech startup. I write about what I actually encounter, not the polished retrospective.
Recent writing
all posts →- No. 004
The Outbox Pattern in Practice
Dual writes fail quietly until the day they don't. Notes on running the transactional outbox pattern against a real payments ledger.
- No. 003
At Least Once Means At Least One
SNS/SQS gives you at-least-once delivery, not exactly-once — a property of the architecture, not a bug. Notes on the two times that difference actually mattered, from an annoying duplicate email to money that needed to be exactly right.
- No. 002
First, Make It Measurable
Notes on arriving at a startup where everything ran on 'more or less,' and on the order I proposed to fix it in — observability before velocity, velocity before architecture — and what each of those 'not yet's cost.