fMLops

When AI helps you code, the bugs hide in different places.

Atom feed | fmlops.dev

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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