public static void main()

A letter to all developers: AI and the future of software development

The experiment

A month ago, ChatGPT challenged me to build something in 30 days and not give it up no matter what, so I chose something that I had wanted to do for a long time: learn the basics of GBA programming and make a small demo game.

The only two restrictions I imposed on myself were to not use AI to generate the code, because the whole point of the challenge was to learn something new, and to dedicate at least 30 minutes per day for 30 days to the project. Therefore, I could use AI to explain concepts to me, summarize docs, debug or write documentation, but ā€œvibe codingā€ was strictly forbidden.

The year is 2025, so of course I have some experience using LLMs and believe me when I say I was one of its biggest critics out there. I thought it was another bubble, another buzzword used by people with far more money than I have to push people like me to invest their own money into their overvalued companies, before the bubble exploded, redistributing wealth from the poor to the rich in the process. Just like the metaverse, if anyone at all remembers that.

So I start the challenge by downloading the GBA programming manual from the Internet, as any sane person would do, and immediately I see that it’s 300-something pages long. I start reading it, but having graduated in 2019, of course I lack a lot of foundation about pointers, memory addresses, bitwise operations, and all those things that decades of abstractions over abstractions have rendered irrelevant.

Just two years ago, I would have headed off to StackOverflow to read about all of this, but now I can just prompt Claude and it explains the concepts to me, patiently, even if it has to repeat the same thing 100 times in a row. The answers are clear, concise and of course, adapted to my needs.

The second difference between the present and 2023 is that I don’t have to spend a full week just reading the docs and understanding all of the GBA shenanigans. I upload them to Claude and tell it to summarize all of the steps needed to render a sprite on the screen. Of course I have to check some blog posts and read the relevant sections of the docs myself to fully understand the platform, but I get going super quickly.

I am not a C programmer, so naturally during development I prompt it some syntax-specific stuff, like how do I typedef a pointer to a function that returns void and takes as parameters a pointer to a player_t struct and an integer? Once again, its response is accurate and correct.

The big question

At this point, you may be wondering what exactly I am trying to explain or sell here. Keep reading, because it gets personal now.

If you are a software developer, you may have asked yourself this question: am I going to lose my job to AI? The truth is, nobody knows. Anyone who tells you otherwise is either a) a fool or b) a person who holds positions in AI-related stocks and wants the price of those stocks to skyrocket.

I have talked to and read from people far more intelligent and well-versed than me, and there are basically two schools of thought:

And then, the second group can be split again in two subgroups:

The first possible future

If the last scenario comes true, then it will not be only software developers who will be replaced. We are talking about mass extinction of white collar jobs. Journalists, translators, accountants, marketing people, salespeople… And I know what you may be thinking (especially if you are in this industry only for the money): ā€˜Well, I’ll just go nursing or whatever that can’t be replaced by AI’. Many before you have thought about that, even I have joked a lot of times about becoming a plumber! But what do you think happen when suddenly everyone wants to become a nurse or a plumber?

Of course, this scenario is a lose-lose situation for everyone involved. White collar workers will become unemployed. Blue collar workers will see an enormous influx of people wanting to take their jobs, which will push salaries down. People who work remote jobs for a richer country suddenly have to face reality and live within their country’s standards.

And companies? You may be thinking they are the absolute winners of this scenario. After all, they reduce their headcount by an 80 to 90%, and publicly traded companies see their stock value rise to the skies. But that’s only short term (which is sadly how capitalism operates). Who is going to buy your beautiful SaaS when everyone has lost their jobs? Who are your customers? If we stop buying, the machine falls apart.

One proposed solution to this is Universal Basic Income (UBI). Basically, the government pays you a fixed ā€œsalaryā€ every month, just for the sake of existing. While I can see UBI being implemented in the European Union, I cannot picture the United States going that way. And don’t get me wrong, this may sound like a dream, but in reality it is another wealth redistribution from the poor to the rich. They get to keep the machine going, and you get poorer. Unfortunately, I cannot see another democratic solution to this problem, since a country with a 50% unemployment rate would quickly fall apart.

The more optimistic future

Our second scenario is that the Jevons paradox holds true once again and this accelerated growth of efficiency creates demand for more jobs, by virtue of companies wanting to do more with the same people. This is, in my opinion, the best scenario for us, since we get to keep our jobs, we delegate the boring and repetitive stuff to machines, and the increased demand of software developers pushes salaries higher and makes it so junior devs can still get in.

The ā€œboringā€ future

Our third and final scenario is that AI is plateauing and this is pretty much as good as it gets. This scenario is good for more experienced and/or passionate developers, but bad for junior developers. It is no secret that we can get more done in the same amount of time, and where I needed a team of 5 before, I may only need a team of 2 with AI now. So there would be a partial replacement of software developers, but not enough to guarantee UBI or governments falling apart. This has happened before so many times that we lost count. Farmers were replaced by specialized machinery, a lot of accountants were replaced by Excel and other tools, and even soldiers are being replaced by drones. It is just that it has not happened yet to software developers, because every time something was automated or abstracted away, more software was produced as a result.

Should you be worried about losing your job in this third scenario? That depends. The first to go will be the ones who are in this industry just because it pays really well. Those who just used all of the abstractions without even thinking about what was going on under the sheets, they are the first adopters of ā€œvibe codingā€. You can see them already on every company, on every team. They do not care about the performance, system design, etc. Now they can push features at the speed of light, working half of the hours.

Think about it for a second, if I am the senior dev I have two options: asking the junior vibe coder to push a feature or writing the prompt myself, probably better and thinking about all the aspects of the system: performance, security, architecture, dependencies, etc. What would you do?

Of course, the reduced demand for software developers may lower the salaries, putting them in line with other white collar jobs. But only the people who are in the industry because they love it are left, aren’t they? Personally, I am willing to pay the price, because there is no other thing I’d rather do in life. But we can expect uncertainty and anxiety for the years to come. What this means for you

AI-assisted development is not the future, but a reality today. Fearing it is a little bit short-sighted, because in the worst possible scenario, society as a whole has to reinvent itself and evolve into a totally different system. Rejecting it will only get you behind. However, if you are a junior developer, do not exchange learning for efficiency. Think about this, if all you do is prompting an LLM, what is your value as a worker?

Companies: do not think only short term. I understand the ā€œgold feverā€ right now around AI, I can understand CEOs wanting to make investors happy (and reducing headcount is surely a nice way to make investors happy) and I can understand CTOs wanting to apply AI to everything, because of the fear of missing out.

Senior developers: do not get stuck in your old ways. Keep being curious, keep learning like you always have. Try all the different stuff, see what provides value and what is a hoax. You have the knowledge to tell apart the good and bad suggestions. Lead by example, use this technology with caution and intelligence.

And to all software developers: be patient and enjoy the journey. We do not know what the future holds, but we cannot let that stop us from building awesome things.

If you liked this post, you can support me by buying me a coffee so I can keep on writing awesome posts!