in Essays, Short, Tech

The Software Engineer is Dead, Long Live the Software Engineer!

[Image composed with DALL·E]

An undeniable killer use case for large language models is code generation. It’s already helping software developers write code up to twice as fast and with more delight.

As LLM models improve with each release, they can write better software and handle more complex architectures at a fraction of the cost of older-generation models. Take this trajectory to its most freakish conclusion and you’ll have a future where AI writes all of the world’s code. In that instance, we won’t need software engineers, right?

This future is far more distant than sensationalists would have you believe. The genAI hype obscures the reality of what’s likely to happen over the next few years. I know this because even though I’m not a professional software developer, I write code with AI assistance every week, and my day job is to find and invest in talented tech entrepreneurs. I’ve seen first-hand and heard from other developers what makes LLMs brilliant and the areas where AI falls short.

[An example of code autocomplete in Python]

For example, try building a full-stack app with dozens of files and multiple API services. You’ll find that LLMs often get lost in the sauce when you have thousands of lines of code. No doubt, longer context windows (how much you can stuff into a model’s prompt) will solve some of this, but how about code maintenance?

If an AI writes most (or all) of the code, you still need someone who can interrogate and navigate the codebase. Why? Well, if the features of some arcane library get deprecated, for example, and the AI lacks sufficient training on what’s new, you’ll need a human to step in and help.

Or consider the seemingly simple task of understanding what users want or need. Software engineers don’t just write code. Knowing the syntax of a computer language is the easiest part of the job. You must also talk to people, understand their needs, distil those requirements into something more precise and achievable, and then balance the costs and benefits of various tools and approaches. AI will get good at this someday, but the world is too complex for LLMs to eliminate all software engineering jobs in the near term.

Some software engineers are already being replaced, though. People who use AI to compose better software are starting to replace those who don’t. And these AI-augmented engineers will have more work than ever. This is because things that were previously too expensive to automate will now be cheaper to codify. Just think about all the weird manual processes you tolerate because there’s no good software for it. AI-augmented software developers and hobbyists will be able to tackle these areas with greater speed and ease.

In my own life, I’ve composed code with AI to complete various mundane tasks. For example, I wrote a Python script to export my Spotify playlists to another streaming platform instead of paying for some obscure software. I hacked together a full stack app to help me find meeting venues. I built an app to summarise YouTube videos instead of waiting for Google to make the feature. I’ve also experimented with AI agents that conduct market research, among other things.

The software engineer of the pre-LLM era is clearly dead. But long live the software engineer who augments their craft with AI. Just as high-level programming languages eliminated the need to write tedious low-level machine code, AI will free up software engineers to focus on more creativity and innovation—two things the world needs now more than ever.