{Joel Horowitz}
Essay · Economics · 2026

The Economics of Programming Have Changed: On Disappearing Layers, Repriced Debt, and Moats That Weren't

On the 10–50x cost reduction in programming, and all the assumptions it invalidates.

When a key input to a production process gets 10x cheaper, you don't just do the same things faster. You stop doing some things entirely. You start doing things that were previously unthinkable. You reorganize around the new cost structure, and in doing so you discover that a surprising amount of what you were doing was a response to the old cost structure rather than a genuine requirement of the work.

Programming just got 10 to 50 times cheaper. The reorganization has barely begun.

Most of the conversation about AI and software development focuses on developer productivity — how much faster can a developer ship code? That's a real and significant change. But it's the least interesting implication. The more interesting ones are structural: which organizational layers disappear, which risk calculations invert, which competitive moats evaporate. These changes don't happen at the margin. They happen at the foundation.

  • Why DevOps and knowledge-width specializations are the layer that disappears first
  • How AI reprices technical debt — cheap refactors and inverted debt tolerance
  • The throwaway UI — when production-quality tooling becomes disposable
  • Uber, Empower, and the end of implementation advantage
  • What gets disrupted and what survives
I. The Layer That Disappears

DevOps and the End of Specialized Distance

DevOps is the canonical example of a discipline that exists primarily because of a knowledge barrier.

The work itself — configuring infrastructure, writing deployment pipelines, managing Kubernetes clusters, setting up monitoring — is not intellectually deep in the way that, say, designing a distributed system is intellectually deep. It is wide. It requires knowing a large surface area of specific tools, configurations, and failure modes. That width, accumulated over years of practice, is what made DevOps engineers valuable and expensive.

It also made them distant from the business. DevOps engineers are rarely familiar with the requirements of the business they support. The engineer who knows Helm charts intimately typically doesn't know why the trading desk needs sub-millisecond latency, what the compliance requirement actually says, or which failure mode matters most to the product manager. At a derivatives firm where I worked, an infrastructure engineer scheduled the production database for maintenance on a Friday around noon — to him, the quietest moment of the week. It was the third Friday of the month. Options expire on the third Friday. At noon. The desks weren't idle; they were at peak reliance on every system he had just taken offline. He wasn't careless. He was doing what infrastructure people do: finding a window that looked quiet (previous Fridays a noon were quiet). He didn't know enough about the business to know it wasn't. They build generic, correct infrastructure. They solve the infrastructure problem as stated. They don't know enough about the business to solve the infrastructure problem as it actually exists.

This is the translation cost. Every layer of specialization that sits between the business problem and the implementation is a layer where context gets lost and genericity gets substituted for fit.

AI collapses the knowledge barrier. The person who understands the business problem can now configure their own infrastructure — not because they've acquired the deep DevOps knowledge, but because they can ask an AI to do the parts they don't know. The translation layer disappears. What replaces it is direct implementation by someone who actually understands what they're building and why.

The result isn't just cheaper infrastructure. It's more appropriate infrastructure — configured by someone with full business context, rather than generic solutions from a specialist who didn't have it.

DevOps is the clearest example, but the same logic applies anywhere specialized knowledge was the barrier: database administration, security configuration, data engineering, observability setup. Every discipline that accumulated value primarily through knowledge width rather than reasoning depth is being absorbed by the people closest to the problem.

II. Technical Debt Gets Repriced

Two Effects That Change the Calculus Entirely

Technical debt — the accumulated cost of implementation decisions that were expedient at the time but create drag later — has always been one of the central management problems in software. It compounds. It makes systems fragile. It slows future development. And it is notoriously difficult to pay down because the cost of fixing it always seems to exceed the cost of living with it for one more sprint.

AI reprices technical debt in two distinct ways.

First, refactoring becomes cheap. The core cost of paying down technical debt has always been the effort required to safely rewrite a system that already exists and works. You need to understand what it does, write tests that verify the behavior, rewrite the implementation, verify that the tests still pass, and handle all the edge cases you discover along the way. This is expensive, tedious, and risky. It's why technical debt accumulates — not because people don't want to fix it, but because the fix never pencils out against the competing priorities.

AI changes this. Generating regression tests that capture existing behavior is now fast. Rewriting a module with improved abstractions while preserving the interface is now fast. The cost of the refactor collapses, and suddenly the debt that was too expensive to pay down has a different price tag.

Second, debt tolerance increases. This is subtler and more important. Technical debt isn't just a cost — it's a financing mechanism. You borrow against future effort in order to ship faster now. The question is always whether the interest rate is worth it.

When refactoring is expensive, you want to minimize the debt you take on, because paying it down later is painful. When refactoring is cheap, the calculus inverts: take the debt freely, ship the imperfect version now, and refactor the moment you have all the pieces. The optimal strategy changes completely.

This has a concrete implication for how software gets designed. Previously, you'd defer a feature until you had the full design right, because building the wrong version meant expensive rework. Now you build the approximate version, learn from it, and refactor when the full picture emerges — because the rework is cheap. The cost of being wrong early dropped dramatically.

III. The Throwaway UI

When Production-Quality Tooling Becomes Disposable

For most of software's history, the choice of UI framework was a load-bearing decision. You chose Streamlit because it was fast to set up, knowing that it would constrain you later. You chose React because it was the right foundation, accepting that it would cost you time upfront. The framework choice encoded a statement about how serious the project was and how long it would live.

AI has decoupled this. Building a full React application — with proper state management, clean component architecture, responsive design — now takes minutes rather than days for a competent developer working with AI assistance. This means the framework choice no longer encodes a commitment to the project's longevity.

You can build a production-quality UI for something that will never go to production. Not as a mistake — as a deliberate choice, because the cost of the nice UI is no longer meaningfully higher than the cost of the hacky one.

The practical implications are significant. You prototype at production quality, because why not. You test ideas with real interfaces rather than console outputs, because it costs nothing extra. If the prototype survives, you have a foundation worth building on. If it doesn't, you've lost nothing but compute time.

The Streamlit era — where the choice of a simplified framework was itself an investment decision — is ending. The economics that made Streamlit a sensible default no longer apply when the overhead of the right tool has collapsed to nearly zero.

IV. The Moat That Wasn't

Uber, Empower, and the End of Implementation Advantage

The deepest implication of the cost collapse is competitive, and it's only beginning to be understood.

Uber was built in an era when building Uber was genuinely hard. The engineering required to handle millions of concurrent transactions, real-time location matching, dynamic pricing, driver supply management, and review systems at global scale was state-of-the-art in 2010. They built things that didn't exist. They solved distributed systems problems that were open research questions. The years of engineering investment created a moat that wasn't just financial — it was technical. Even a well-funded competitor would have taken years to replicate the infrastructure.

But here's what those years of engineering also produced: an organization sized to justify its own existence. Every layer of management, every specialized team, every internal tool and process — all of it created cost that has to be recovered somewhere. The answer, in Uber's case, was the margin extracted from drivers. The platform fee isn't primarily profit — it's the cost of the platform, distributed across every transaction.

Empower works on a different model: drivers pay a flat subscription — roughly fifty dollars — and keep everything they earn. The economics only work if the platform cost is low enough that a subscription covers it. For Uber, built when building was expensive, the platform cost is enormous. For a company building the same product today, with AI handling the implementation, the platform cost is a fraction.

This is the pattern that will repeat across every industry where:

  • The product is well understood (Uber figured out surge pricing, ride categories, review systems over years of iteration — that knowledge is now public)
  • The implementation was the moat (years of engineering effort that was genuinely difficult to replicate)
  • The incumbent carries legacy cost structure (an organization built for the old cost environment)

A new entrant doesn't need to out-engineer the incumbent. They need to copy the spec — which is freely available, refined over years of the incumbent's customer research — and undercut the cost structure. The years of product iteration that made the incumbent's offering good are now the new entrant's free product research.

The minimum viable product for a ride-sharing competitor is no longer a heroic engineering effort. It's an afternoon with a clear spec and an AI that can implement it.

V. The General Principle

What Gets Disrupted and What Doesn't

Not every moat evaporates. The disruption pattern applies specifically to businesses where the implementation was the primary barrier to entry — where building the thing was harder than knowing what to build.

What survives:

  • Network effects — Uber still has the riders. Empower needs both sides of the market, and getting to critical mass is still hard regardless of how cheap the software is.
  • Regulatory moats — industries where compliance is the barrier, not implementation
  • Genuine proprietary data — companies whose value comes from data they've accumulated, not software they've built
  • Deep domain expertise — businesses where understanding the problem is the hard part, not implementing the solution

What doesn't survive:

  • Knowledge barriers — specializations that existed because the tool surface was wide, not because the reasoning was deep
  • Implementation moats — businesses where the years of engineering effort were the competitive advantage
  • Organizational overhead — layers of specialization that exist to manage the complexity of the old cost structure

The through-line is the same in every case: AI eliminates barriers that existed because of cost and complexity, and reveals whether there was genuine value underneath. Sometimes there was. Often, there wasn't — the moat was the implementation, and the implementation is now free.

That's a lot of moats.

DevOps, technical debt, throwaway React apps, and what happens to Uber when building Uber costs nothing — May 2026