AI Won't Kill Software Engineering—It Will Expand It
The conversation about AI and software engineering jobs hit a nerve on X, with nearly every software engineer reportedly experiencing some degree of mental health crisis.
The anxiety feels intense — but history, economics, and human nature suggest it's largely misplaced.
The Thread
Tom Dale (@tomdale) observed the crisis. Eric S. Raymond (@esrtweet) responded forcefully:
"Get over yourself. Every previous 'programming is obsolete' panic has been a bust, and this one's going to be too... As usual, the answer is: upskill yourself and adapt."
When challenged that AI lets one coder do the work of many (reducing total jobs), ESR pointed to:
"Now go study Jevons's law and learn exactly why you're wrong."
My own post tried to reframe it:
"It's a horizon mismatch or perspective clash. Judging the future by present reality ignores that both can't be true simultaneously. You can either focus on the present, where skills are still valued, or the future, where they're valued even more due to AI augmentation—without devaluing the present just because the future is more valuable."
That idea sparked a richer private conversation. Here's the fuller synthesis.
1. Jevons Paradox isn't paradoxical—it's a forced perspective collapse
Jevons Paradox states that efficiency improvements often increase total resource consumption, not decrease it. The "paradox" dissolves once you stop collapsing two projections onto one axis:
- Micro projection (fixed-demand): For a given task, higher efficiency means less input per unit of output. A better steam engine burns less coal per unit of work.
- Macro projection (elastic-demand): Efficiency lowers cost per unit → previously unviable applications cross feasibility thresholds → new demand materializes → total consumption rises. Cheaper energy made factories, railways, entire industries viable → far more coal burned overall.
These operate on different axes with different metrics. Force them together—ask "does efficiency increase or decrease consumption?"—and you get interference: a paradox. Separate them, and it's straightforward price theory: lower costs shift feasibility boundaries, demand expands into newly viable territory.
In software engineering: AI lowers the cost per unit of software produced. This doesn't shrink the total need for software—it shifts feasibility thresholds. Applications that were too expensive, too complex, or too niche become viable. New categories emerge. Multimodal systems, adaptive personalization, domains that couldn't justify software investment before—all cross the line.
The mechanism isn't analogy to coal. It is the same mechanism: efficiency expanding feasibility boundaries into new demand.
2. Supply creates its own demand—but trace the mechanism, don't compress it
"Productivity creates its own demand" captures something real, but as a compressed form it risks substituting for the mechanism it summarizes.
The mechanism: before programmable computers, demand for software engineers was zero—not because no one wanted what software could do, but because the category didn't exist. Each productivity leap—assembly to high-level languages, frameworks, cloud, AI—didn't satisfy a fixed demand more efficiently. It created new categories of demand by making previously inconceivable applications conceivable.
This is supply-side innovation generating its own demand. Not in the trivial sense that making things creates things to buy—but in the structural sense that new capabilities reveal new problems worth solving that were invisible before the capability existed.
AI is doing the same: unlocking applications in education, medicine, design, infrastructure that weren't "waiting to be built." They become conceivable as the tools to build them emerge. The demand materializes because the supply makes it possible.
Separately, within this expanding field, the composition of work shifts. Less rote coding, more architecture, verification, domain integration, creative direction. This is a different mechanism—task decomposition within existing demand—operating at a different level from the first.
Conflating these two weakens both. The first explains why the field expands. The second explains why individuals don't become redundant within it.
3. Relative vs. absolute—ratio discipline
"AI replaces engineers" is a replacement frame. Apply ratio discipline: reparse as (engineering work with AI) / (engineering work before AI). The numerator includes everything AI enables that didn't exist before. The denominator was never the "pure" baseline people treat it as—it was itself the product of prior tool revolutions.
There's no replacement. There's amplification differential.
Those who upskill aggressively gain disproportionately—they compound faster. Those who don't fall behind relatively: lower premium, less influence on the frontier.
But even they gain absolutely. The mechanism: AI tools diffuse into baseline infrastructure—the way IDEs, Git, and cloud became ubiquitous. Cheaper, faster software digitizes more of the economy. Broader growth raises real capabilities for everyone. Past waves confirm it: when high-level languages replaced assembly, "laggards" didn't vanish—they eventually migrated or found niches while the overall bar rose.
Even those who adapt slowly ride the rising tide. The risk is relative stagnation in an accelerating world—not absolute obsolescence.
4. The sensing is real—the model is wrong
Tom Dale's observation—"this week became the tipping point"—is position-on-curve language. Ask: would the same sentence be equally true six months earlier or six months later on the same trajectory? Almost certainly yes. The "tipping point" feeling is an artifact of local slope, not discontinuity. Every position on an accelerating curve feels locally unprecedented.
But the engineers experiencing crisis aren't fabricating. They're sensing something real: the local rate of change is steep, their current skills are losing leverage relative to augmented alternatives, the ground is shifting. That signal is accurate.
What's inaccurate is the model interpreting the signal. The interpretation runs: steep change → fixed demand → my skills become worthless → profession dies. This extrapolates short-term disruption onto a static demand frame, ignoring elasticity, history, and how innovation generates new need.
The actual trajectory is gradual, uneven, ultimately expansive: roles shift, opportunity grows, standards rise. The feared trajectory—sudden replacement, profession erased—exists only in a mental model that treats demand as fixed and extrapolates linearly.
ESR's "get over yourself" identifies the wrong model but dismisses the real signal. The stoics had it closer: "Men are disturbed not by things, but by the opinions they form about them." But even this compresses too much. The disturbance isn't purely opinion—it's a real signal processed through a wrong model. The response isn't to suppress the signal. It's to update the model.
Closing thought
Every generation of engineers has faced its version of "this changes everything." Each time, the field didn't contract—it transformed into something larger. The reason isn't just Jevons or demand elasticity. It's that software engineering was never primarily about writing code. It's about translating between problem domains and formal systems. Code was always the bottleneck artifact, not the core function.
AI removes the bottleneck. This reveals that the scarce resource—the ability to specify, decompose, verify, and integrate—was always upstream of the code itself. You don't automate the core function by automating its most tedious expression. You free it.
The pie doesn't stay fixed—it grows, and the slices evolve.
Keep upskilling, yes—but also keep building. The horizon is wider than the anxiety makes it seem.