Software Explosion
The first holy shit moment for AI coding was the launch of Github Copilot in October 2021. For the first time, developers had an AI partner that actually understood context and provided boilerplate code for common patterns.
The second holy shit moment came a year later, in November 2022, with the launch of ChatGPT. This time the impact was not limited to software engineers - now anyone could start writing code merely by describing what they wanted in natural language.
Things have only accelerated since then. Tools like Cursor and V0.dev have completely changed how some software is made. Here's a video of me using my voice and a rough sketch to build an app front-end:
In the past, it might have taken a few hours to build out components like this. Now it can be done in a matter of minutes, perhaps even faster if I was better at drawing.
It’s not surprising that a lot of software engineers are wondering what this means for their careers. After decades of automating other people’s jobs, is it finally time for software engineering jobs to get automated away?
The current state of AI coding
If you really wanted to, you could find many reasons to be skeptical about AI coding back in 2021. Yes, Copilot was impressive… but it was also kind of retarded. It would sometimes make mistakes that a programmer with even a basic understanding of your code would never make. The massive influx of capital, hype and smart engineers working on AI over the past few years has fixed many of these issues.
But before we get caught up on the hype, let’s level-set. The table below gives you a sober overview of where AI coding stands today:
The rate at which items are shifting to the left side of this table is quite something. Three years ago we started with a cool auto-complete, then basic code gen, then full code explainers, then advanced code gen with hallucinations, then the hallucinations mostly went away and now the AI can deal with entire project contexts.
The improvements to AI tools are coming from two distinct areas:
- New models with increased capabilities. Each new state-of-the-art model gives us a jump in capabilities - understanding intent better, higher quality code and being able to solve more complex problems.
- Engineering work to integrate models. Even if AI models stagnated, we would still expect significantly better AI tools as we learn how to maximally leverage these models for every aspect of software development.
As my demo earlier showed, these improvements mean that it’s getting much faster to build software. Depending on what type of development you do, I’d estimate AI can increase developer efficiency by 10-40% today. That’s a big shift in only three years.
Faster in this case also means cheaper. As the cost of creating software falls, the amount of software that gets created will increase exponentially.
There’s an app for that and that and that…
The amount of software created each year has been increasing at an astronomical rate for decades - but we’re now at the mother of all inflection points. There is near infinite latent demand for software, which has been constrained by the high cost of software development. At least, it used to be.
When the price of building software decreases by 50%, we should expect demand to increase by orders of magnitudes. There are millions of use cases just below the surface, waiting to become economically feasible. Software has eaten the world. Now AI will digest it.
Some of the areas where I’m expecting a software explosion:
- Replacing SaaS with in-house software: Why pay SaaS-vendors like Salesforce millions when you can build your own CRM, ATS or HR system that’s customized to your business?
- Proliferation of micro software: There are thousands of small points of friction within companies that could be streamlined or automated with some code and sticky tape.
- Expansion of product offerings: AI raises the bar for customer expectations. We’re all going to need to build far broader, smarter products.
- Automation of human tasks: The number of jobs that can be automated completely or partially will increase dramatically - all of which requires us to build a lot more software.
- Tech-enabled becomes the default: Building software used to be reserved for large companies and funded startups, soon every company will be able to afford to create their own software.
Even if AI is carrying the bulk of the load, we’re gonna need a lot of people to build all this stuff. It won’t just be software engineers though - everyone will start writing code. Why stop at a Figma design when it’s possible for designers to build components simply by speaking to an AI? Why should a product manager ask engineers to fix a small bug when they can do it themselves? Why should a finance manager need to ask engineers to automate the billing process?
All this software will be hosted, secured, integrated, maintained and expanded over time. Some of that work will be done by AI agents, but some of it will need old school flesh and blood humans. To understand that we’ll need to take a bit of a detour…
Both are fun, but coding is not like farming
AIs writing code is different from most forms of automation we’ve seen in the past. This becomes apparent when, for instance, contrasting coding with farming.
While farmers need to exercise high levels of judgment in managing their farms, it’s not necessary for the farm workers or machines to do so. You can successfully toil land, plant trees and pick fruit simply by focusing on the task at hand.
To a large degree, the tasks that need to get done on a farm can also be specified ahead of time. The only problem is getting someone, or something, to actually do the work at the right time.
As a result of these things, introducing machinery on a farm directly reduces the need for labor on the farm.
The midwit response to this might be to argue that machinery brings economies of scale and an incentive to grow the farm. This is technically true and a particularly successful farm might need more labor even as efficiency increases. But the overall farming market is tempered by the fact that there’s a fixed demand for food. We can see this by looking at the number of people employed in agriculture over time:
Unlike farming, software suffers from no such limitations of demand. Everything in the world is automatable, including eventually the process of automation itself. Every time we dial up automation and consequently reduce costs, we’ll see orders of magnitude more demand for software. We’re going to have so much software it will seep from our pores…and we’ll still want more.
This point is well articulated by Jeff Bezos, “Customers are always beautifully, wonderfully dissatisfied, even when they report being happy and business is great”.
So, where does that leave software engineering jobs? Unlike farm work, the most important aspects of software development are not deterministic. They involve huge amounts of discovery and the resulting software is the manifestation of business strategy, positioning, trade-offs, culture and processes. Even if AI can create code that does exactly what you ask it to do, we'll still need to specify want we want at a level of detail that requires dedicated people to do it. And sheer volume of software we'll be making means we'll need lots of those people.
Put simply: AI will make you faster but it won't take your job because there's infinite work to do.
Same same, but different
Most software engineering roles aren’t going anywhere. In fact, we should expect more demand for software engineers over the next decade as their leverage and the value they can create increases.
That’s not to say software engineering roles won’t change dramatically. Developer roles that predominantly involve “grunt” work and little judgment will be automated away. The current model of seniors being augmented by juniors will be replaced with seniors being augmented by AI agents. I've already spoken to some founders who've decided to never hire junior devs again. This raises some big questions about career paths, but that’s a topic for another essay.
The nature of what software engineers do on a daily basis will also change considerably. Instead of crafting code ourselves, we’ll increasingly spend time reviewing code written by AI agents. Syntax, complex algorithms, and obscure console commands are out. Identifying and translating business problems and customer needs into solutions are in.
For some engineers, this shift will be a traumatic attack on the craft they spent years learning. For me it's an exciting opportunity to command an army of AI underlings!
Thanks to Schalk Dormehl, Ububele Kopo and Louw Hopley for reading drafts of this.