<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Michael Rothrock</title>
        <link>https://michael.roth.rocks/blog/</link>
        <description>Engineering reliable systems from unreliable AI agents. Verification surfaces, gates, and field data from autonomous development.</description>
        <language>en-us</language>
        <lastBuildDate>Thu, 03 Sep 2026 00:00:00 GMT</lastBuildDate>
        <atom:link href="https://michael.roth.rocks/feed.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title>How Small Is Small Enough?</title>
            <link>https://michael.roth.rocks/blog/how-small-is-small-enough/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/how-small-is-small-enough/</guid>
            <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
            <description>The old rule for sizing a microservice was that it should fit in one engineer&apos;s head. That turns out to be a useful shape for coding agents too. But the two bounds have stopped being the same size, and only one of them matters at 3am.</description>
        </item>
        <item>
            <title>You Don&apos;t Code the Model, You Edit the JSON</title>
            <link>https://michael.roth.rocks/blog/edit-the-json/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/edit-the-json/</guid>
            <pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate>
            <description>Improving a model is more like discovery than engineering. In mixlab a model is a JSON config, so trying a hunch is editing a file, not writing a training loop. Two molecule generators you can load and run today.</description>
        </item>
        <item>
            <title>The Deterministic Ceiling</title>
            <link>https://michael.roth.rocks/blog/the-deterministic-ceiling/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-deterministic-ceiling/</guid>
            <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
            <description>What you can verify at each pipeline stage isn&apos;t arbitrary. It&apos;s set by how constrained the artifact is, and the deterministic ceiling rises as language becomes plans, code, and tests.</description>
        </item>
        <item>
            <title>You Can Only Verify What You Can See</title>
            <link>https://michael.roth.rocks/blog/biosurface-hackathon/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/biosurface-hackathon/</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description>My first hackathon. I built BioSurface, a tool that checks AI-written biology claims against the data, and a final test run caught a gap in my own pipeline. You can only verify what you can see.</description>
        </item>
        <item>
            <title>Three Papers, One Idea</title>
            <link>https://michael.roth.rocks/blog/trust-topology-trilogy/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/trust-topology-trilogy/</guid>
            <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
            <description>I stopped asking which model is best and started asking whether I can verify what it produces. That reframing has a name, the verification surface, and it held across three very different domains: coding agents, medical imaging, and language models.</description>
        </item>
        <item>
            <title>The Verification Surface</title>
            <link>https://michael.roth.rocks/blog/verification-surface/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/verification-surface/</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
            <description>An AI agent can write code that compiles, passes every test, and still ships a privilege escalation. The bug isn&apos;t in the code, it&apos;s in what you checked against. A plain-language explanation of the verification surface.</description>
        </item>
        <item>
            <title>Verification Debt</title>
            <link>https://michael.roth.rocks/blog/verification-debt/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/verification-debt/</guid>
            <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
            <description>AI agents rarely write bugs anymore; the risk is the slow rot as they pick inconsistent patterns over time. It&apos;s called verification debt, and the fix isn&apos;t more checks on the code, it&apos;s gating the plan and design before the code is ever written.</description>
        </item>
        <item>
            <title>The Repo Is the Memory</title>
            <link>https://michael.roth.rocks/blog/the-repo-is-the-memory/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-repo-is-the-memory/</guid>
            <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
            <description>A coding agent rebuilds its understanding from the repo every run, so the repo is its memory. But that memory splits in two: soft living context and hard workflow state. Each needs the opposite rule.</description>
        </item>
        <item>
            <title>Measuring Engines with Horses</title>
            <link>https://michael.roth.rocks/blog/measuring-engines-with-horses/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/measuring-engines-with-horses/</guid>
            <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
            <description>An OpenAI engineering post resurfaced and everyone is arguing about one number: 3.5 pull requests per engineer per day. The argument is in the wrong domain. PRs per day is a unit we borrowed from the world that agents are replacing.</description>
        </item>
        <item>
            <title>Harness Engineering</title>
            <link>https://michael.roth.rocks/blog/harness-engineering/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/harness-engineering/</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
            <description>Prompt engineering and harness engineering both involve sending text to a model. The underlying skills are different. Prompt engineering is closer to writing and rhetoric. Harness engineering is closer to distributed systems design.</description>
        </item>
        <item>
            <title>You Already Have a Process</title>
            <link>https://michael.roth.rocks/blog/you-already-have-a-process/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/you-already-have-a-process/</guid>
            <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
            <description>Teams keep asking how to catch weird behavior from production AI agents. The better question: do you have a process? Map it once with a big agent, then run targeted agents against it.</description>
        </item>
        <item>
            <title>Plan to Throw One Away</title>
            <link>https://michael.roth.rocks/blog/plan-to-throw-one-away/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/plan-to-throw-one-away/</guid>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
            <description>Fred Brooks said it in 1975, and it</description>
        </item>
        <item>
            <title>The Model IS the Pipeline</title>
            <link>https://michael.roth.rocks/blog/the-model-is-the-pipeline/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-model-is-the-pipeline/</guid>
            <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
            <description>Is model choice the most important thing in getting good results from agents? For me, no. The harness around the model is doing the work.</description>
        </item>
        <item>
            <title>Share the Thing</title>
            <link>https://michael.roth.rocks/blog/share-the-thing/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/share-the-thing/</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description>I open-sourced a small ML utility eleven days ago. More than 3,000 people are using it. Here</description>
        </item>
        <item>
            <title>Same Gates, Three Models</title>
            <link>https://michael.roth.rocks/blog/same-gates-three-models/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/same-gates-three-models/</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description>Same 11 gates. Three medical imaging models. Rejection rates scale with model weakness: 6.3%, 11%, 93%. Zero code changes.</description>
        </item>
        <item>
            <title>I Built an ML Architecture Lab in Go</title>
            <link>https://michael.roth.rocks/blog/mixlab/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/mixlab/</guid>
            <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
            <description>Define a model in JSON, train it on your Mac, ship the same config to a cloud GPU. No code changes between platforms. Open source: mixlab.</description>
        </item>
        <item>
            <title>Delegate Outcomes, Not Tasks</title>
            <link>https://michael.roth.rocks/blog/delegate-outcomes-not-tasks/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/delegate-outcomes-not-tasks/</guid>
            <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
            <description>Good managers delegate tasks. Great managers delegate outcomes. The same is true for managing AI agents.</description>
        </item>
        <item>
            <title>The Revision Problem</title>
            <link>https://michael.roth.rocks/blog/the-revision-problem/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-revision-problem/</guid>
            <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
            <description>Tasks that fail early and get revised have half the downstream failure rate. The most expensive thing a pipeline can do is let bad work through early.</description>
        </item>
        <item>
            <title>Questions I Ask Every Agent</title>
            <link>https://michael.roth.rocks/blog/questions-i-ask-every-agent/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/questions-i-ask-every-agent/</guid>
            <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
            <description>I build by asking questions, not by issuing commands. Four questions from my Claude Code logs that make the biggest difference.</description>
        </item>
        <item>
            <title>Cognitive Debt</title>
            <link>https://michael.roth.rocks/blog/cognitive-debt/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/cognitive-debt/</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description>As people use agents to write more code, they are trading tech debt for cognitive debt. Two strategies to stay connected to code you didn</description>
        </item>
        <item>
            <title>The Blind Spot Map</title>
            <link>https://michael.roth.rocks/blog/the-blind-spot-map/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-blind-spot-map/</guid>
            <pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
            <description>Low overlap doesn</description>
        </item>
        <item>
            <title>Stage Coverage Beats Gate Density</title>
            <link>https://michael.roth.rocks/blog/stage-coverage-beats-gate-density/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/stage-coverage-beats-gate-density/</guid>
            <pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
            <description>Adding more reviewers doesn</description>
        </item>
        <item>
            <title>Errors Compound Forward</title>
            <link>https://michael.roth.rocks/blog/errors-compound-forward/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/errors-compound-forward/</guid>
            <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
            <description>Coding agents don</description>
        </item>
        <item>
            <title>The Terraform Destroy</title>
            <link>https://michael.roth.rocks/blog/the-terraform-destroy/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-terraform-destroy/</guid>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
            <description>A coding agent issued a terraform destroy in dev. The fix wasn</description>
        </item>
        <item>
            <title>The Missing Gate</title>
            <link>https://michael.roth.rocks/blog/the-missing-gate/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/the-missing-gate/</guid>
            <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
            <description>A hallucinated company name in a marketing report. The root cause wasn</description>
        </item>
        <item>
            <title>Three Robot Bakers</title>
            <link>https://michael.roth.rocks/blog/three-robot-bakers/</link>
            <guid isPermaLink="true">https://michael.roth.rocks/blog/three-robot-bakers/</guid>
            <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
            <description>AI failures are inevitable. Whether they propagate is a design choice. A simple analogy for why verification checkpoints matter more than model capability.</description>
        </item>
    </channel>
</rss>
