The role of junior developers in the world of LLMs
I ran into this tweet from Pieter Levels:
… I don't care what all the developer X accounts here say "noooo AI won't do anything to the SWE job market"
It's 100% coping, because it already did!
It wiped out the low to mid-tier of the SWE job market
You don't hire the low to mid-tier SWE because your existing engineers can do the same job by telling AI to do it…
While I 100% agree that AI will change the job market, I completely disagree that this will cause the wiping out of low to mid-level software development jobs.
I'm saying that because in the past month alone, we've hired a junior developer, a mid-level developer, and an intern.The existence of AI didn't change the economics of being able to hire developers at the start of their journey.What it did change, and this is a very significant difference, is what sort of tasks I can give them.
Our intern is a high school student, a very talented one naturally, but he still has a limited amount of knowledge about software and general development. To give some context, I've been literally building RavenDB since before he was born. So a single software project has had a longer lifetime than the intern.
So, what kind of tasks can I give someone like that? How do you bridge this gap in experience?
In the past, those would have been the most basic of tasks.Mostly stuff that is meant to teach them about the codebase and how to work with it, rather than bring concrete value. Still stuff that you need to do, of course, but nothing critical:
- Backport this fix and its related tests to the previous version. Call me if anything breaks.
- Make sure that we handle the Turkish I problem for all input fields.
- Add a new report to the system - here is an old one you can use as a template.
- Make this dialog mobile-friendly - here is how we did this before.
Today, the tasks he's been given are the same tasks I would have assigned to a mid-level developer four years ago. Build me a feature from A to X (with the expectation that for the last couple of steps, they would need additional guidance):
- Create a complete management dashboard.
- Build an import pipeline for handling uploaded files and ingesting them.
- Create a notification system for users (email, WhatsApp, SMS, etc) for important alerts.
In other words, in my experience, the intern would be able to complete at least basic functionality that would have been required from a mid-level developer just a few years ago.
Now, this doesn't mean that I can take a mid-level developer circa 2022 and replace them with a high school student with ChatGPT access.It does mean that I can drive the project quite far before I need a more experienced person to look into it.
And this is what I think you're going to see: a fundamental shift in the way we approach building software. You still need a human in the loop, but a lot of the groundwork can be delegated to the computer.
The growth from a junior to mid to senior, etc., is more about zooming out and looking over details such as architecture, longevity of the project, knowing not just "here is code that works" but "here's how you should approach this task”. Experience matters, and it shows quite clearly, but the rungs at the beginning of the ladder have significantly shrunk.
Consider the fact that Hello World
is considered a major success when you start. Today, your basic Hello World
app is responsive by design with scale-out capabilities. The bar for what counts as baseline functionality has jumped, but the difficulty of getting there is more or less the same.
In other words, if I were at the beginning of my career today, I would still choose to go into software development.And I think that the existence of AI just means that we have far better leverage to do even more amazing things.
Comments
Comment preview
Join the conversation...