What's gonna happen to software engineers?
Thoughts are mine and mine only. I don't ever use LLMs for writing.
In the back of my mind, I've been thinking a lot about what's going to happen to software developers. In a metaphoric way it feels like an existential question, given that, well, I'm a software developer.
The real answer is that nobody really knows. But we can guess and speculate, and sometimes that speculation is what helps build reality.
There's of course the doomsday scenario that we just all go away, but then what? Are we all unemployed and our skills intransferrable to anything else?
I tend to be optimistic and think that there won't be a sudden shift but rather that gradually we're going to adapt and morph into new job titles (both new as in existing job titles that are new to us but also totally new job titles) but there will probably be side effects coming in the form of mass layoffs and the like, justified or not.
It's of course silly to speak of "software developers" as a class because it's so broad, and I think it's clear we're not all going to the same place when it's all said and done. Probably because despite the shared title we weren't even in the same place to begin with. It's the same with "engineer" — there are mechanical engineers, civil engineers, electrical engineers, chemical engineers, and even we're sometimes called software engineers!
For simplicity's sake, I'll narrow down my scope.
I think there are broadly two classes of software developers: the "software as a means to an end" ones, and the "software as the end" ones. Now, before we're all up in arms and I haven't even truly started this post yet, of course reality is a lot murkier and all of us are a combination of the two in some sense, but I do think this is a valid separation for the purposes of this discussion.
The "means to an end" devs are those that write code because code lets them build things. Code is the means to building a company, or a home automation system, a blog, a website for your friend's wedding. That doesn't mean this class of devs doesn't enjoy code or appreciate the beauty of well-written code and well-designed systems, but it means that they would have built that website with a no-code tool if that no-code tool truly let them build it just how they wanted it. Boris Cherny, the creator of Claude Code, regularly talks about how he's in this category. This is also the category I'm myself in.
The other category, the "software as the end" devs, are the ones that are generally more math-inclined, took part in coding competitions, deeply enjoy optimizing algorithms, and so on. They might be really happy coding just to code, even if it doesn't necessarily produce a product in the end. Writing beautiful performant code is often enough of a kick. Again, this does not mean these people don't, can't, or aren't interested in building products. Just like being in the other category does not mean you don't actually enjoy the process of writing code.
Come to think of it now, after writing all this, I think these categories are a lot more about "what got you into this" rather than what you actually end up doing in this space. But what gets you into something is also relevant for determining how you're getting out of it.
So I wanted to talk about the "means to an end" folks, since that's where I fall. What's gonna be of us?
In some ways, this AI revolution (or whatever we want to call it) should be the best thing since sliced bread. You can prototype faster, try more ideas, build things in spaces where you don't have all the prior skills (like a new programming language), and overall just build more. The whole goal was to build stuff, right? You can build anything quickly now, let's go!
On the other hand it also means that people who want to build stuff just like you but didn't take the time to learn code can build things now too, so you're no longer special. Not only are you not special, but before this, a domain expert needed you to turn their ideas into reality, and you needed them for their domain expertise. Now, they don't need you but you still need them.
I think it's clear that AI has changed and will continue to change our jobs. This is indisputable. We can debate on how true the 10x, 100x, and 1000x claims are, and how steep or not steep the curve is, but things have changed and we need to change too.
With that said, here are a few possibilities I can visualize. It's important to note that we're not talking about a distant future here, more like a 5-10 year timeline, and in world terms, not SF terms.
As a side note, the SF vs world thing is something I think we overlook often. The first fully autonomous Waymos started roaming around SF in 2022, and while they feel normal now, my hometown in Brazil is probably not going to see self-driving cars for at least half-a-decade more still. Hell, most cars driving around in Brazil are still using manual transmission.
The business-as-usual...