David Heinemeier Hansson reversed his position on AI coding tools in roughly six months. In late 2025 he said he didn’t use AI for coding. Now he runs two models simultaneously in tmux, Gemini 2.5 for fast iteration and Opus for heavy lifting, reviewing diffs in Lazygit and barely typing implementation code by hand. The shift wasn’t a change in values. The tools became good enough that agent-generated code started meeting his quality bar.

The setup matters because DHH is not a permissive reviewer. He attributes the change entirely to model quality, specifically Opus 4.5, which he says produces code that requires minimal alteration. Earlier tab-completion tools irritated him as an experienced developer because they interrupted rather than accelerated his thinking. Agent harnesses are different: you describe an outcome, the agent executes, you review a diff. The interaction model suits someone with strong opinions about what correct code looks like.

The practitioner insight that most teams will dismiss and shouldn’t: senior engineers benefit far more from this shift than junior ones. DHH describes tackling P1 optimisation work that was previously impractical on a two-month cycle, reducing request latency from 4ms to under 0.5ms. That work was always on the list. It moved because the leverage became available. Junior developers face the inverse problem: Amazon now prevents them from shipping agent-generated code without senior review. The gap between what experienced engineers can validate quickly and what inexperienced engineers cannot isn’t closing with better tooling, it’s widening.

Rails turns out to be well-suited for this workflow. Token efficiency, built-in testing, and human-readable output mean agent code in a Rails codebase is fast to generate and fast to verify. DHH reads a diff and knows within seconds if it’s on track. Frameworks with implicit magic or sprawling configuration make that verification harder. The verifiability axis that matters most for AI-assisted coding is how quickly you can evaluate output correctness, and Rails was designed with readable code as a first-order goal.

37signals currently runs a 1-designer-to-2-engineers ratio. DHH thinks AI acceleration makes that ratio viable across the industry. His 2-month Shape Up cycles already feel slow for the pace agents enable. Neither observation is a prediction, they’re reporting what he sees in his own team. The concrete takeaway for everyone else: if your team hasn’t re-examined what senior engineers can now tackle that was previously off the table due to time cost, that’s the evaluation to run. The bottleneck moved.