Will AI Replace Software Engineers? What You Need to Know
The rise of artificial intelligence (AI) a few years ago was like a technological big bang. The hype is still creating ripples and so far, it has been both exciting and scary. On one hand, in the software engineering world, AI is gradually becoming the preferred tool for performing research, generating and optimizing code, and even creating unit tests and documentation. On the other hand, it is understandable that people are getting this feeling of unease deriving from the question, “will AI soon be smart enough to take over my job?”.
Let’s look at the possibilities.
A Personal Anecdote
In 2023, in addition to my regular job, I spent most of my afternoons as a university professor in the Computer Science department. This was a very rewarding job: I was helping develop young engineers’ minds, plus it inspired me to start writing and giving advice about succeeding in a software career. Anyway, one of the classes I was teaching was about data structures. Most sessions involved learning a new structure — in C, because I’m a nostalgic and I wanted my students to learn to manage memory firsthand — and taking an exercise home for practice.
The first few sessions were easy — we spoke mostly about arrays, defining a node, explaining what a pointer is, etc. — and the exercises were not too complicated either. However, when we started looking at more complex structures, at adding and removing elements, and at sorting, the solutions to the home exercises from some students started looking suspiciously similar to each other.
This was not unfamiliar. I remember from my student days that some people would “work together” (wink wink) and deliver akin responses. But I could feel there was something off about their assignments: they all shared the same mistakes. The way the files were structured in the same number of functions, the names of the variables, the number of elements in the data structure, they all looked off. Additionally, some of them wouldn’t even compile, or would break mid-execution because the code they were using was only valid using a different compiler.
The very next session I waited for the audience to build up, greeted everyone, and asked them: “please be honest, who used ChatGPT to do their homework?”
My perspective then
Back then, my posture towards AI was — I think justifiably — cautious or even suspicious. GPT 3.5 had just been released a few months ago and, while it was good at understanding natural language and generating equally fluent responses, writing technically and functionally correct code was another thing. At least in the example above, I had proof that those students who used AI got incorrect answers.
As a professor, well… it took me by surprise, and I had to decide right on the spot about drawing a line where I thought how much AI assistance was acceptable. In the end, I wanted my students to learn, not just get the answers from the internet. So, I gave them the sermon about how they shouldn’t rely entirely on AI and how important it was to learn the concepts so that they can verify the code. I think that the last part is still true today, but the AI-generated code surely has improved… A LOT.
As a team manager, though, I wanted to get my hands on AI as soon as possible. It was just amazing that using the right prompt would provide you with code, or give you step by step guides of how to implement functionality. Mistakes and all, the developers in my team are experienced enough to notice them and fix the issues, so most of their code was written automatically and they would only adjust it. Unfortunately, but understandably, many companies wouldn’t allow it, given that there was a risk of revealing commercial secrets to the internet if you shared code with AI in a prompt. This would change later.
The Current State of AI in Software Development
It is impressive how much progress has been made in just a few years. The AI race forced the hands of many companies to release their own products and update them regularly. With the latest versions the possibility of getting mistakes in code has been, while not eliminated, very largely reduced. It does give the impression that the models are living entities that are learning at unbelievable speeds.
With people getting better at writing prompts and providers adjusting their models to avoid sensitive data leakage, more software companies are starting to adopt AI into their development practices every day. Because of this, software engineering is being transformed into making coding more efficient and reducing repetitive tasks.
Personally, I use the major AI providers for different scenarios — these are just personal preferences, and I know that each provider could potentially do the same in each scenario:
- I’ve found myself using ChatGPT and Gemini more than Google nowadays for finding things over internet. The old way would be to google my query, then click on each article that seems relevant, read all the information, and summarize it. Now, I can ask AI for complex and specific prompts, and it will do the research for me.
- I’m using ChatGPT for reasoning scenarios (because of its daily free credits) and for content creation. While I write my content myself, I find ChatGPT useful for suggesting blog post structure and deep dive on specific research topics.
- I’m using Copilot for its integration with Microsoft apps. It’s very convenient to click the Copilot button when I’m reading something in Edge and ask it to summarize and give me action items. Also, the features from GitHub Copilot integrated into VS Code are just amazing.
These are a few examples of what AI can and can’t do today, regarding Software Engineering.
What AI Can Do Well
- Automate coding tasks: Tools like GitHub Copilot, ChatGPT, and CodeWhisperer can auto-complete your code based on what you’re typing, generate classes and functions, help resolve syntax or logical errors, and create boilerplate code.
- Assist in code review and debugging: AI can analyze code bases and suggest performance, security, and best-practice improvements.
- Write unit tests: It can generate test cases based on function definitions and their code.
- Generate documentation: AI can look at your code and explain it in natural language.
- Enable non-developers to build applications: AI can be easily integrated into low-code and no-code platforms.
What AI Can’t Do Well (Yet?)
- Understand business requirements: AI struggles to grasp business goals, user needs, and project objectives. The context and parameters must be carefully provided by a human.
- Make architectural decisions: AI can suggest design patterns, but it won’t decide the architecture based on a company’s long-term strategy.
- Solve complex, unstructured problems: AI will provide the solution to a problem, but only until a context is given to it. Defining the initial problem context is something that humans need to give it as an input.
- Handling edge cases and debugging unforeseen issues: AI is perfect for resolving issues, but imagining potential issues that are not part of the original context, is still out of its reach.
- Making ethical and security decisions: It’s our job to teach AI what is right and wrong or not.
The Evolution of Software Engineer Roles
The incursion of AI is indeed changing the game. It is very understandable that there is uncertainty about the future. Let’s remember, though, that this is not the first time it has happened.
Just by looking at computer science history we can find examples of big breakthroughs that encouraged engineers to adapt to new skills:
- Before hard drives, or any sort of mechanical and magnetic storage, there were punch cards. Engineers had to learn how to operate the punch card machines and handle, sort, error-check, and maintain the cards, plus learning specific programming languages. None of this is required nowadays.
- To communicate with computers, the first engineers had to learn assembly language, which heavily relied on knowledge about operating processor instructions and memory slots. This all changed when languages like Pascal, Cobol, and Basic were introduced. Now software engineers could focus more on providing high-level instructions to the computer, rather than worrying about their internal functioning.
- Even Pascal, Cobol, and Basic were at some point left behind when C appeared in the 70s, changing forever how software development was done. Many languages we still use today derive from C.
- The introduction of the internet was a revolution. Now computers could communicate with each other and the world wide web allowed knowledge (and memes) to be shared globally. Learning about HTTP protocol, HTML, CSS, and JavaScript has been the norm since then.
- The creation of smartphone devices also encouraged engineers to experiment with other programming languages that allowed gestures as their main form of interaction.
AI can be seen as another step in the ladder, or maybe a jump in technology: one as big as the creation of internet or the creation of the personal computer itself. It will eventually change what software engineering means. Old skills will eventually fade away and new skills will be required.
Predictions from Industry Leaders
Here we have what some of the most renowned industry leaders have said about the possibility of AI replacing software engineers:
- Mark Zuckerberg (Meta), on the Joe Rogan Experience, said that he expects AI to function as a mid-level engineer by 2025, and that we will get to a point where all the code in our apps will be written by AI engineers instead of people engineers.
- Jensen Huang (Nvidia), at Dell Technologies World, said that we now have the ability to manufacture intelligence: “The last industrial revolution was the manufacturing of software; previously, it was manufacturing electricity — now we are manufacturing intelligence”.
- Bill Gates (Microsoft), in an interview for the People by WTF podcast, said that software engineers will still be needed, and AI will add extra productivity and quality.
- Sundar Pichai (Google), during the third-quarter earnings call last year, revealed that over 25% of new code at Google is being generated by AI.
- Sam Altman (OpenAI), in his latest blog post, hinted that he envisions AI agents that can perform similar tasks to what a software engineer with a few years of experience could do and handle tasks for up to a couple of days long. These agents will still struggle generating creative ideas and require a lot of human supervision and direction.
In a nutshell, what leaders are saying is that we can only expect AI to continue improving into smarter models and being able to complete more complex tasks, up to the point of writing the entire code of an application. However, they will require a lot of human direction, indicating that software engineering jobs will still be needed.
Will AI Take Over Software Engineering Jobs?
Let’s take a lesson from history and look at an example of how a major technological advancement changed industry.
In the early 1900s, horses were dominant as the primary means of transportation (other than walking, of course). Then came the Ford Model T in 1908 and almost immediately automobiles started roaming the streets. In only 10 years, there were already more cars than horses. By 1930, these completely replaced them.
Software engineers are not the horses in this story. They are the stable workers, the blacksmiths who made horseshoes, the horse-drawn carriage drivers, manure collectors (yes, that was a thing), and all the jobs that gradually decreased their demand.
You could think that these jobs disappeared. However, they evolved into something else. The stable workers turned into gas station attendants or parking lot workers, the blacksmiths turned into metal welding for car parts, carriage drivers turned into taxicab drivers, and manure collectors still cleaned the streets minus the manure (which is an improvement if you ask me).
The lesson to learn about this story is: evolution. With AI, it is likely that Software Engineering will evolve into something else. Maybe it will be less about writing code and more about imagining creative solutions to problems.
Just like with cars, a new industry will emerge with AI. Let’s make sure we’re prepared for it.
Preparing for an AI-Driven Future
As AI continues to evolve at a very fast rate, software engineers must adapt to remain relevant. As it has been said more than once, “AI won’t replace you, but someone who knows AI very likely will”.
The first step is to understand that AI, while it is learning quickly, it still needs verification. This is particularly true when generating code. This means that everything that you are meant to learn about computer science and coding is still relevant. You can find a detailed explanation of everything you are expected to learn about software engineering in my blog post Essential skills for a great software engineer in 2025.
Also, you need to realize that AI today is not meant to be your competition, but rather a tool, or even an assistant. In a few years, it could become something more like the coworker you are assigned to mentor and train. In any way, AI will need your instructions and direction. In return, AI will help you improve your productivity.
Having said that, here is a list of things I suggest you look at to stay current:
- Learn prompt engineering using AI-powered tools like GitHub Copilot, ChatGPT, and other tools to produce high-quality code faster. Also practice creating unit tests and documentation using AI.
- Exercise your high-level problem-solving skills and critical thinking.
- Create your own specialized AI agents. This will be a key differentiator for engineering careers.
- Master the basics of the different AI models and machine learning.
- Pay interest in cross-disciplinary knowledge like communication, leadership, and business skills.
- Alternatively, you can look into AI-resistant areas like cybersecurity, DevOps engineering, or IoT.
Most importantly, keep updating your knowledge and skills, and never stay still.
Conclusion
The future of software engineering beginning a major transformation with the integration of AI. As the technology leaders have emphasized, AI is set to revolutionize the we approach coding and software development.
While AI will undoubtedly take over many routine tasks, the role of human engineers will remain crucial for creativity, supervision, and direction. The collaboration between AI and humans promises to enhance productivity and quality like never before.