The Lost Buffer

Writing code was also time to think about the design and all its implications. AI cuts the time to write, and with it the reflection that used to ride along inside the typing.

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. It was slow, and it was the throughput bottleneck. But that slowness was doing hidden work. Writing a design out in full forces you to confront it in detail: every function you name, every edge case you handle, every interface you make concrete is a small design decision you cannot skip. The plan in your head meets the code that actually has to run, and that is where you find the parts that were vague, wrong, or quietly impossible.

That work happened at typing speed, which meant the design got thought through at typing speed. The friction between an idea and running code was a natural governor: it stretched every decision over the minutes it took to express, and those were the minutes when the implications surfaced. You noticed the case you had not handled because you were down in the code that would have to handle it.

AI removes that governor. The code appears in seconds, so the design no longer gets walked through line by line. You make the high-level call, the implementation arrives, and the small collisions with reality that used to happen while you typed do not happen. The reflection did not move earlier or later in the process. It was bundled into an activity that no longer takes any time, so unless you rebuild it on purpose, it does not occur.

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.

The industry is discovering that software demand has no natural ceiling (one version of this argument here). 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 always 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. That frustration was the forcing function for deeper learning, and AI quietly removes it.

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 encodes tempo between iterations. Three rapid decision rounds on a feature, then an hour of incubation before anyone acts on the output. The orchestrator treats pace as a first-class concern, a designed cadence rather than 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 only open question is 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, and it was never only writing: it was where understanding formed while the work got done. AI removed the slow part and quietly took that understanding with it. The engineers who thrive will be the ones who notice what left and rebuild that reflection on purpose.

Written by Martin Sigloch with Tachikoma.