The death of the [modified] developer
It's not just juniors who've had their career yanked out from under them by AI.
Quick thing up top: Fly.io is sponsoring the Cloud Resume Challenge in September! My buddy Jared calls them “the holy grail for hobby projects” for a reason: they’ve been on my radar for a few years as probably the fastest, most cost-effective AWS Lambda alternative for small teams and side projects. They’ve asked me to pass along a special offer to CRC challengers: for a limited time, claim $50 in credits to build something on their platform right now!
Steve Yegge wrote a thought-provoking piece earlier this summer called The Death of the Junior Developer. I’m still turning it over in my head because I heard Steve give a talk based on the article at last week’s ETLS conference. Let me tell you, the talk woke up everybody in the room. Steve, in person, is like an embodied version of his infamous Platforms Rant: he paces restlessly up and down the stage, spools out shocking opinions in a sort of breathless blurt, hurls insults at both the audience and himself, and generally comes across like a mad prophet from outer space.
That does not, however, mean he’s wrong.
Here’s the TL;DR of both talk and article: the current drying-up of the junior software engineer job market is not just a macroeconomic blip, it’s an inevitable result of AI doing all the low-level code-slinging tasks we used to give to interns and fresh computer science graduates. We still need developers, says Steve, but they’ve got to be experienced enough to keep the AI code-generators honest and on track. Juniors simply can’t keep up.
When everyone’s senior, no one will be
If you read to the end of Steve’s article, he suggests that many top CS graduates are effectively “already senior” by the time they graduate, because they’ve put in a ton of extra time on OSS projects, etc, to pick up relevant skills. This is your competition, he tells the artists-formerly-known-as-junior-developers; you better get good.
I find this to be a puzzling frame. If someone can be “effectively senior” without years of actual professional experience, then what the heck do the words “senior” and “junior” even mean? Are we just using them as synonyms for “skilled” and “not skilled?” Because that is not going to help all the people out there trying to break into tech jobs who can’t even get evaluated on their merits because the job req demands five years of experience. “Just get good” is not really a helpful thing to tell those people. Not at scale.
There’s another implication here, an even odder one: if there is no demand for junior developers anymore, then there can’t really be senior developers anymore either, right? “Senior” only has meaning as a contrast to “Junior”.
It seems that our terminology is failing us here. And that’s not a small point. If we can’t talk about this problem clearly, we can’t fix it. And, as thousands of frustrated entry-level job seekers can tell you, it’s a problem that needs fixing.
Fullstack all the way down
Now, since we’re being precise with our words… I actually think Steve doesn’t go far enough in calling out the death of the junior developer. I think that AI has killed, or is about to kill, pretty much every single modifier we want to put in front of the word “developer.”
“.NET developer”? Meaningless. Copilot, Cursor, etc can get anyone conversant enough with .NET to be productive in an afternoon … as long as you’ve done enough other programming that you know what to prompt. (Sorry, “juniors”.)
“Senior .NET developer”? It’s an oxymoron. If you’re senior now, your identity can’t just be “I write .NET”. AI is writing most of the actual .NET code. You have to be able to supervise and tweak a much broader set of technologies to be worth “senior” money.
For awhile I thought the only useful modifier AI has left us with is “fullstack”. For years now we’ve all been complaining about these “fullstack developer” job postings that seem to demand half a dozen skillsets in one: front end, back end, cloud, data, DevOps…
That isn’t ridiculous anymore. You pretty much have to make an impact across the full stack now because “I’m heads down on front end code” has become Claude Sonnet’s job. The AI world is a generalist’s world. Go big or go home, literally.
(Sure, there will always be a small number of very specialized, very skilled people who do nothing but optimize SQL Server query plans or whatever. This is like being that one lady who knows how to make the period-accurate soap in Colonial Williamsburg. I wouldn’t bet my career on being one of those people.)
When almost everyone is effectively “fullstack”, that’s not a useful modifier either.
So what are we gonna do?
I think Steve is prophetic when he tells us what’s happening to software development. But I think it’s not helpful to frame what’s happening as “the death of juniors”. Junior and Senior (and other terms designating experience level) are perhaps the only modifiers of “developer” that should always be relevant, because they’re unrelated to specific technical skills.
Perhaps we can define “junior developer” this way: it’s somebody who needs human supervision to accomplish the things a full-fledged member of the technical staff should be able to do using only AI assistance.
If we can’t make room in our taxonomy of technical work for someone who still needs human training, we are just doing the same old thing IT has been doing for decades: borrowing from our future to cash in on the current hype. AI, “chat-oriented programming”, whatever tomorrow’s buzzword is—they’re fascinating, they may be productivity enhancers, but they won’t remove the need for experienced human generalists in the loop.
And every experienced generalist starts out inexperienced. They start as a junior developer. That’s not where software engineering dies: it’s where it’s born.
Good Sponsored Thing
Thanks as always to our flagship sponsor Pluralsight for supporting juniors and career-changers in tech via the Cloud Resume Challenge. If you really do have limited time to stay ahead of the AI reaper, it wouldn’t be a bad idea to spend a month of that time doing a free course on the technology of your choice.
Just For Fun
Whether you’re in your 1st or 51st year in tech, you belong.
I sense a bit of elitism and arrogance in Steve’s post- “if you go to my posh uni you are senior”. This sense of entitlement is the reason most Faang companies are so uniform culturallly- they hire from the same 5–10 universities.
Regards the ai threat - give it a few years. Most of them trained on stack overflow etc, and that well is drying up as people realise their free work is being stolen and sold off without their permission.
Already I see LLMs making mistakes and hallucinating when you use any technology from the last 1-2 years. They are great only if you stick to really popular techs like python , django rails etc.
So yeah I would wait a few years , and see what happens when the hype dies down.
Thanks for this thought-provoking and informative article.
I love how you point out that all developer jobs will change—not just junior developers jobs.
Another reason for optimism for junior developers is that AI tools should start helping them pick up skills much faster.
I’m still not clear where things land but the changes will be seismic.