Notes from production.
What we've learned shipping software that has to survive contact with real users — rescuing vibe-coded MVPs, putting AI into production, and the boring discipline most teams skip. No hot takes. Just things we've had to get right.
Why your vibe-coded MVP keeps breaking.
The demo worked. The launch didn't. A field guide to the four failure modes we see in every AI-generated codebase — and the order to fix them in before they take the business down with them.
Read the note →Evals before features.
You can't improve what you can't measure. Why we write the eval harness before the first prompt — and what goes in it.
7 min readRead →RAG that survives real data.
Your retrieval works great on the ten documents in the demo. Here's what breaks at ten thousand — and how to design for it up front.
11 min readRead →The migration nobody scheduled.
Strangler-pattern cutovers, weekly and boring, beat the big-bang rewrite every time. A walk through one that worked.
8 min readRead →Idempotency, or it didn't happen.
The single most common bug we find in AI-built checkout flows — and the four-line invariant that makes it disappear.
6 min readRead →Logs you'll actually read at 2am.
Structured logging is a design decision, not a library. What to capture, what to drop, and how to find the needle fast.
7 min readRead →Hiring senior, on purpose.
Why we cap the team at people who've shipped before — and what that buys a client who's already been burned once.
5 min readRead →A note every couple of weeks. Nothing else.
When we learn something worth writing down, you get it in your inbox. No drip campaign, no “10 hacks”, unsubscribe in one click.
No spam. We read replies.