The Lost Buffer
AI coding tools did not make engineering harder. They removed the friction that used to regulate decision pace. Engineers are not doing more work. They are making more decisions per hour with less time between them.
The thing that got removed
Before AI coding assistants were viable, most of an engineer's day was taken up by the act of writing code. Not designing it. Writing it. Translating a mental model into syntax, boilerplate, typing out what you had already thought through. Slow and it was the throughput bottleneck. It was also invisible infrastructure for thinking.
The act of writing forced a rhythm: think a piece through, write it down, let it sit, revisit. Each cycle created space for system understanding to form and stabilize. The friction between thought and running code was a natural governor. It gave you time to notice when your first idea was wrong before you had invested in it.
AI removes that governor. The translation from thought to running code now takes seconds. What is left is the decision layer. Architectural calls, tradeoff evaluations, design judgment. Without the time between them. The same cognitive load, compressed into a shorter window.
Why engineers feel busier
If the throughput bottleneck was writing, and writing compressed, the natural expectation is that the same output takes less time. That holds at the task level. But the aggregate effect is different, because engineering demand is elastic. When a task costs less to execute, people want more of them done.
I saw Dax interviewed recently making this point: the industry is discovering that software demand has no natural ceiling. If you can deliver twice as fast, stakeholders want four times as much. The thinking requirement per unit of output has not fallen proportionally.
The hard parts were never typing. They were understanding the domain, modeling the system, making judgments about what to build. Those still take the same cognitive effort. AI accelerated the throughput bottleneck and exposed the thinking one.
The frustration gap
There is a specific kind of learning that happens when you debug without help. Twenty minutes tracing a data flow manually, stepping through a wrong implementation, sitting with the contradiction between what you thought the code did and what it actually does. It is uncomfortable. It is also where system intuition crystallizes. The frustration of not understanding forces deep engagement with how the system behaves, as opposed to how you imagined it.
AI shortcuts that state. It hands you a plausible fix before you have truly wrestled with the problem. The uncomfortable silence of not knowing is replaced with an immediate answer, and the answer is usually good enough that you move on. The consequence is that you accumulate output faster than you accumulate insight about the system. The frustration was not waste. It was the forcing function for deeper learning.
What the metrics miss
Lines of code per developer per day is a universally mocked metric. And yet the entire AI coding tool industry measures itself against it. X% faster code generation, Y% more tasks completed. Easy to measure, easy to market, and they miss the only thing that matters: whether the engineer's judgment scaled.
An engineer who writes 50 lines of carefully reasoned, AI-assisted code that nails the architecture is producing more value than one churning 500 lines across five iterations. There is no dashboard for judgment density. No vendor posts about decreased time-to-reflection or improved decision quality per output. The metrics we have measure the thing AI already solved, not the thing it exposed.
The bottleneck shifted from writing to judgment. Knowing when to slow down, when to set the answer aside and sit with the question, when the AI's plausible fix is a trap that bypasses understanding. That determines whether AI multiplies your capability or just your busyness.
The governor problem
If writing friction was the natural governor, and it is gone, something has to replace it deliberately.
The simplest replacement is the usage limit. I hit my API caps regularly. Those forced pauses are a crude approximation of the old buffer. They force a stop, but uncontrolled. A hard interruption mid-flow is not the same as a natural pause at a completion boundary.
A better version is intentional: after a decision round with AI, set the result aside before acting on it. Minutes or hours. Let the answer settle. Return fresh and see what you notice. This is the closest analogue to the old write-let-sit-revise rhythm, adapted for the new pace.
The most structural version is what I am building with Tachikoma's orchestrator. A layer above individual coding sessions that can encode tempo states between iterations. Not just faster task execution, but explicitly designed cadence: three rapid decision rounds on this feature, then it goes into incubation for an hour before anyone acts on the output. The orchestrator manages pace as a first-class concern, not an accident of response speed.
What survives acceleration
AI coding tools are not going to get slower. The compression of the writing buffer is permanent. The question is not whether to resist it but what to protect: the judgment layer, the frustration time, the space between decisions where system understanding forms.
Writing speed was the throughput bottleneck. It was never the capability bottleneck. AI removed the first and exposed the second. The engineers who thrive will be the ones who deliberately protect their thinking time. Who treat AI as accelerator for what they have already thought through, not as replacement for thinking.
Written by Martin Sigloch with Tachikoma.
More writing on AI infrastructure, engineering practice, and the systems that make agents useful.