// WRITING

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.

Latest 7 notes · newest first
RESCUE May 2026 · 9 min read

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
AIMay 2026

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
AIApr 2026

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
PLATFORMApr 2026

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
RESCUEMar 2026

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
PLATFORMMar 2026

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
TEAMFeb 2026

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
// SUBSCRIBE

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.