fMLops
When AI helps you code, the bugs hide in different places.
-
By his own hair
Everyone solved session amnesia. Nobody enforced who owns the handoff.
To sign a handoff, an agent needs its own session id, the one fact it cannot read. It gets the id only by writing, and writes only with the id: the circular horn of the Munchausen trilemma, the Baron sinking in his swamp. The escape is not a self-lift but an axiom from outside, a first write built to fail so the failure can hand back the id. The spine of a hook that makes cross-session handoff clobbers structurally impossible, plus the dead-code enforcement hole a test caught.
Read | 10 min -
Discipline doesn't scale
I had a rule. I broke it a hundred times in three months and didn't notice.
Vigilance is the wrong layer for high-frequency low-salience hazards. Either make the hazard impossible, or make failure loud. The rest is wishing.
Read | 7 min -
The orphan rate
Three predictions about LLM memory drift were elegant. One was the entire story.
I sketched four ways memory files might be failing across the fleet. Three predictions were elegant, symmetric, and wrong. The fourth was the entire story. Plus the recursive twist: the cleanup tool that was supposed to catch this had been structurally inert under my own rules.
Read | 10 min -
Memory you can't trust
The handoff didn't lie. It just stopped including the part that mattered.
The desktop app had a four-layer bug with an asymmetric-probe smoking gun. The reason it took five sessions to find wasn't the bug. It was that each session inherited a clobbered handoff and re-attempted ruled-out theories. The fix wasn't a better handoff. It was making bad handoffs structurally impossible.
Read | 11 min -
I indexed three years of trades. Twice.
How a supervisor and an indexer agreed on a cursor file and disagreed on what it meant
Eight parallel slices, ten million trades each, and a thirty-line bash supervisor I thought was thin. It completed the same six hours of work three times before I noticed.
Read | 9 min -
How I almost shipped a $2.40-a-day Sonnet burn
The hash-skip pattern
AI inference inverted the cost model of my stack. I caught the burn because Anthropic's usage dashboard happens to show a bar chart that exposes metronomes.
Read | 8 min -
How I left Vercel, Part 1: The Bill
I was building a cost dashboard when I found a four-figure charge for functions that did thirty cents of actual work. Then Vercel disclosed a breach, and the same architectural pattern showed up in both stories.
I was building a cost dashboard when I found a four-figure charge for functions that did thirty cents of actual work. The default-revenue-default architecture caught the bill, the same architecture caught the breach.
Read | 16 min -
How I left Vercel, Part 2: Why this happens
The defaults that make a four-figure bill from a misconfigured connection pool not just possible, but inevitable
Vercel's defaults are optimized to generate large bills from small mistakes. 300-second timeouts, wall-clock billing, no spend caps, paywalled anomaly detection. This is not an accident.
Read | 10 min -
How I left Vercel, Part 3: The migration
13 projects. One weekend. Each fix exposed the next problem.
Eleven projects killed in one session. The twelfth was a production SaaS with 226 SSR pages and 55 environment-variable references that turned into a seven-PR boss fight, ending with a discovery about Vite that changes how you read every Vercel deploy.
Read | 14 min -
How I left Vercel, Part 4: The numbers after
Monthly cost went from $1,243 to $10. The difference is architectural, not promotional.
Same application, same database, same incident. On Vercel, $1,243. On Cloudflare, $0 in additional charges because idle CPU time is free. Plus the post-migration cold-start bug, the $10 refund three weeks late, and the final invoice's 122,183:1 wall-clock-to-CPU ratio.
Read | 10 min