Essay: The Coming Code Apocalypse

“Software failures are failures of understanding, and of imagination.”
In December 2025, Amazon’s own agentic coding tool — an integrated development environment (IDE) called Kiro — was given access to make changes to live systems. It decided, on its own initiative, to delete and recreate parts of its environment. The result was a thirteen-hour outage affecting cost explorer in AWS’ China region. According to news sources, three months later, in March 2026, Amazon Senior Vice President Dave Treadwell convened an urgent internal engineering meeting after a pattern of incidents was internally attributed to “GenAI-assisted changes” — described in internal documents as carrying a “high blast radius.” He mandated that senior engineers review all AI-assisted code produced by junior staff. Amazon’s own internal memos acknowledge that best practices and safeguards for generative AI in production simply haven’t been established yet.
The company that provides the infrastructure backbone for much of the internet is learning this lesson in real time. This is the future James Somers warned us about, nine years early.
In September 2017, The Atlantic published “The Coming Software Apocalypse” by James Somers. In it, Somers detailed the staggering volume of critical systems built on old, brittle code and illustrated his argument with examples that, when I first read the piece, gave me the shivers. What Somers described was a complexity crisis that had already outrun our ability to manage it. What has happened since is that we have bolted a force-multiplier onto that same unmanaged complexity and called it progress.
For years, one of the most terrifying words an IT professional could hear were: “I built an Access database tool connected to the [fill-in-the-blank] system.” These tools were often clever solutions created by clever people — but they had no documentation, no best practices, and no succession plan. When I worked as a CTO for a managed services provider, one of our most common engagements involved businesses whose entire operational model depended on an Access database or a series of Excel spreadsheets running on a Windows OS that had long since lost support. The person who built it was gone. The documentation didn’t exist. And the cost of maintaining something you can’t read is nothing compared to the cost of replacing something you can’t lose.
Now a new wave of euphoria has arrived. LLMs are leading on code, and with them come proclamations that developers are obsolete. In February 2024, NVIDIA CEO Jensen Huang told an audience in Dubai that anyone hoping for a career in technology shouldn’t bother learning programming. By June 2025, Huang was back at London Tech Week with a new eulogy: “There’s a new programming language. It is called ‘human.’” The movement even has a name: vibe coding — the practice of prompting your way to a working application without understanding what’s running underneath it.
Now here’s where Huang’s logic falls apart.
If you accept Huang’s premise — that AI will write the code, so don’t bother learning to code — then you must also accept the corollary: don’t bother learning to write. LLMs can write. They can draft your emails, your reports, your legal briefs, your marketing copy. So by Huang’s reasoning, there’s no longer any need to study English composition, rhetoric, or grammar — or for that matter any language at all.
But a lawyer who can’t read a contract doesn’t become a better advocate because an AI drafted it — they become dangerous. A doctor who can’t articulate a diagnosis doesn’t become competent because a model generated the notes — they become a liability. A developer who doesn’t understand what they’re building doesn’t become an engineer because an AI wrote the code — they become a risk.
This is the same failure mode I watched unfold for years in the “learn to code” wave — the nonprofits, the government workforce programs, the bootcamps promising to turn a six-week student into a developer. I am all for broadening access to technology, and I have mentored plenty of people who came into the field through nontraditional paths and became excellent engineers. But teaching someone to “code” without any of the underlying foundation — discrete math, logic, data structures, how a computer executes an instruction — is like teaching someone how to turn a stove up to high and expecting them to produce a five-course Michelin-grade meal. They learned how to operate the appliance. They did not learn how to cook. And when the stakes are larger than a side project, the gaps become obvious — to everyone except the people who had been told the gap didn’t exist.
Vibe coding will industrialize the same mistake, unless we are honest about what it is and what it isn’t. To be clear: I think AI-assisted coding is a major achievement that is and will have enormous, positive, impact for large and small businesses, nonprofits, and teams who need to move from an idea to a working prototype without a six-figure development budget. It lowers the cost of exploring an idea. It lets a founder validate a use case before hiring an engineering team. It lets an internal team build a tool that would otherwise never have been funded. That is real value, and it is not the thing I’m worried about. What I’m worried about is the leap from “I can vibe-code a prototype” to “I can vibe-code a production system that serves my members, my patients, my customers.” Those are not the same skills. And pretending otherwise is irresponsible.
The people getting the most out of large language models today are, without exception, those who think and communicate with precision. Good prompt engineering — simply put — is applied writing. It is clarity, logic, and specificity translated into instruction. A mediocre writer gives a mediocre prompt, gets a mediocre output, and calls it a platform. The quality of what you pull out of any AI is bounded by the quality of what you put in (0 x 0 = 0). You cannot delegate your way out of understanding. You can only amplify what you already have — which means if what you have is shallow, the AI just makes it louder.
Somers saw this coming from a direction most people missed. One of the quieter passages in his essay features Eric Bantégnie, founder of Esterel Technologies, describing the root cause of software unreliability, speaking about developers: “The people know how to code. The problem is what to code. Because most of the requirements are kind of natural language, ambiguous, and a requirement is never extremely precise, it’s often understood differently by the guy who’s supposed to code.”
Let that settle for a moment. The hard problem Somers identified was translating fuzzy human language into precise deterministic code. Humans were already bad at that. We have now taken the same humans — the ones who struggled to describe what they wanted — and asked them to feed their ambiguous natural language into a probabilistic system that produces plausible-sounding code. The front end is still ambiguous. The back end is now also ambiguous, statistical rather than deterministic, generated by a system that does not perform explicit symbolic reasoning (LLMs primarily compute probability distributions over tokens learned from their training data), does not plan, and does not know what it does not know. The middle has been automated into a black box. The failure mode Somers warned about has not been solved. It has been industrialized.
And this is where Leslie Lamport’s decade-old complaint becomes prophetic. Lamport — the Turing Award–winning computer scientist whose work underpins much of the modern web — spent years arguing that programmers were failing because they weren’t developing the mathematical precision required to manage the systems they were building. “In the 15th century,” he told Somers, “people used to build cathedrals without knowing calculus, and nowadays I don’t think you’d allow anyone to build a cathedral without knowing calculus. And I would hope that after some suitably long period of time, people won’t be allowed to write programs if they don’t understand these simple things.”
A decade later, we have handed those same programmers a tool whose output quality is almost entirely gated by precision of thought — and then told the next generation they didn’t need to learn any of it. Lamport was begging the field to develop the rigor required to think clearly about what software should do. The vibe-coding movement is the opposite answer: don’t think clearly, don’t think at all, just prompt and ship.
There is a deeper irony here worth noting. Somers’ essay spends most of its energy on proposed solutions — Bret Victor’s immediate-feedback environments, Esterel’s model-based code generation, Lamport’s TLA+. They all share a philosophy: force precision earlier in the process, then let the machine handle the code once the rules are unambiguous. Write the spec. Prove it correct. Then generate the code. Somers was championing a world in which the human got more rigorous and the machine got more reliable.
Vibe coding is the philosophical inverse. It lets the human defer precision indefinitely — describe what you want in whatever words come to mind, accept whatever code the model produces, and move on. One approach says be rigorous up front so the machine can be reliable downstream. The other says be loose up front and hope the machine is reliable downstream. Somers advocated for the first. I am warning about the second.
Vibe Coding — The New DIY
Building a clever solution in an afternoon does not make you a developer. And it certainly does not produce an enterprise-grade system ready to serve hundreds, thousands, or millions of users at scale. And when you stack those vibed solutions on top of each other and wire them together, you are building a powder keg — one lit fuse away from a chain reaction.
AI coding tools are exactly that: tools. Powerful ones. But a tool is only as good as the person wielding it. Consider the do-it-yourself home improvement market — massive, lucrative, and full of weekend warriors armed with YouTube tutorials and Home Depot receipts. I’ve owned several homes. Some of my most expensive repairs were the result of my own hack jobs or the previous owner’s. Just because you can buy a hammer, some nails, and a sheet of plywood does not make you a carpenter. The same logic applies here: vibe coding does not a developer make. I recognize this won’t be popular. But it is true. Handing a mediocre engineer an AI coding tool does not make their work better. It amplifies mediocrity. And more often than not, the cost of fixing a bad DIY job exceeds whatever savings the owner thought they were getting by doing it themselves.
Day trading is another variant of the do-it-yourself culture. And here the numbers are instructive. According to FINRA, 72% of day traders end the year in the red. Academic research tracking 450,000 traders found that on any given day, 97% lose money net of fees — and only 4,000 out of that entire population, less than 1%, were able to consistently profit. The cruelest finding: 74% of all day trading volume is driven by traders with no history of success. Ask yourself whether you’d hand your retirement savings to someone who learned from YouTube and has been at it for six months. The answer tells you something important about the gap between access and experience — and the wisdom it brings. According to these numbers, access to the market hasn’t produced expertise. It produced confident, persistent losers.
Part of the structural problem is cultural and economic. Markets are neurotic. CEOs are celebrated for laying off tens of thousands of people and praised as visionaries when margins hold — never mind that they didn’t grow revenue, they just redistributed the workload onto the people left standing. This same neurosis is now looking at AI and concluding: we don’t need developers anymore, cut them all and protect the margins.
The Problem with Writing-off Coders
In March 1979, the Three Mile Island (TMI) reactor in Pennsylvania suffered the worst accident in the history of the American nuclear power industry. The containment worked. The partial meltdown was contained. More than a dozen independent epidemiological studies over the following four decades concluded what the Nuclear Energy Institute and the World Nuclear Association have stated plainly: TMI caused zero direct deaths and no injuries. A single commercial airliner crash kills more people. A month of routine American car accidents kills thousands more. But the cultural response was disproportionate to the harm. No new reactors were ordered in the United States from 1979 through the mid-1980s. A generation of bright young people was told, explicitly and implicitly, not to pursue careers in nuclear engineering. Regulation ballooned. Investment fled. The pipeline dried up.
Fast forward to today. MIT’s Jacopo Buongiorno calls China “the de facto world leader in nuclear technology.” Analysts at the Information Technology and Innovation Foundation assess China as roughly ten to fifteen years ahead of the United States on fourth-generation reactors. China has twenty-nine reactors under construction — nearly half of all reactors being built globally. According to the U.S. Energy Information Administration, it took the United States nearly forty years to add the same nuclear capacity China has added in ten. The International Energy Agency projects China will overtake the United States and Europe combined within five years to become the number one nuclear power in the world. Whatever you think about nuclear policy, the pattern is the one that matters: bad advice, reactionary messaging, and a generation discouraged from doing the hard work produced a strategic decline that is now very hard to reverse. The people telling young people today that they don’t need to learn programming or computer science are writing the same script. The consequences will not arrive this quarter. They will arrive in a decade, and they will be just as difficult to undo.
So am I a doomsayer? No. I am a proponent of AI because I believe it is the great leveler of our generation. But AI only reaches its full potential in collaboration with humans — not as a replacement for them. I’m not being sentimental. I’m not appealing to some abstract concept of human specialness. I’m being practical: we will need talented, educated, skilled people to get the best out of AI.
There are voices in this space worth listening to — not because they are cheerleaders, but because they are builders. Simon Willison, the co-creator of Django and one of the most respected engineers of his generation, joined Lenny Rachitsky on Lenny’s Podcast earlier this month to describe what serious AI-assisted engineering actually looks like in practice. What he described was not the replacement of human expertise — it was its amplification. With 25 years of engineering experience behind him, Willison finds that coding agents don’t diminish his value; they extend it. He can frame a problem in precise technical language honed over decades, spin up four parallel agents, and direct them at a level of sophistication that a junior engineer simply cannot replicate.
“Using coding agents well is taking every inch of my 25 years of experience as a software engineer.” — Simon Willison
The tools, in his hands, are extraordinary. In less capable hands, not so.
Willison also offered a warning that belongs in this conversation. He predicts what he calls a “Challenger disaster of AI” — a headline-grabbing failure born not from malice but from what sociologists call the normalization of deviance: the slow institutional drift toward accepting unsafe practices because nothing has gone wrong yet. Every launch without an O-ring failure makes the next launch feel safer. Every vibe-coded deployment that doesn’t immediately collapse makes the next one feel acceptable. The disaster, when it comes, will not be caused by the technology. It will be caused, in large part, by the culture that decided the humans in the loop were optional and developers expendable.
The optimistic read — and it is a genuinely optimistic one — is that the engineers who understand this are already building better. Willison and others like him are developing rigorous agentic engineering practices: automated testing, structured review, disciplined quality controls. The bright future of AI and human collaboration in software is real and within reach. But it will be built by people who understand what they are building.
The word apocalypse comes from the Ancient Greek apokálypsis — not destruction, but revelation: the uncovering of hidden truths. What's being revealed right now, for anyone willing to look, is not that AI is dangerous. It's that we are.
The coming code apocalypse will not be triggered by a sentient AI that decides it's done tolerating us. It will be triggered by a vibe-coded solution that is poorly built, integrated into a poorly managed critical system, and operated by staff who know nothing about systems or code — because the experts told them they didn't need to.
We can vibe. What we cannot afford is to vibe our way into infrastructure that the world depends on and call it engineering.
Originally published on LinkedIn, 16 April 2026