Writing
Notes from production.
Engineering at the boundary of code and money. One post a month. RSS →
In progress
Outlines visible to Abhinav while iterating; not in the RSS feed.
- Draft
Pre-mortems for production ML: the four prompts I run before shipping a model that touches money
Post-mortems are the industry's most-discussed engineering ritual. Pre-mortems — written before the model ships — are the most underused. Thirty minutes, four prompts, before any model goes behind a money-touching service.
- Draft
What I wish I'd known before deploying my first model behind a Flask service
Training a model is half the job. The other half is the loop around it — the warmed worker, the eval harness, the latency budget, the failure mode you didn't graph. A practical how-to from three years of doing it the hard way.
- Draft
Recovery is the path: designing around broker outages
The happy path is the special case. A field guide to high-water-mark recovery for systems that ingest from upstream feeds you don't control.
- Draft
Cache the aggregate, not the query
A pattern I keep reaching for in trading-firm dashboards: cache the rolled-up answer, not the raw query — the read path stays warm and cache invalidation stops being everyone's problem.
- Draft
The idempotency contract: design it before you optimize
A 10× speed-up on a job without an idempotency key is just an opportunity to corrupt state 10× faster. A short field guide to writing the contract first.