I have a confession to make.
Five years ago, if I had a tedious task like writing unit tests for a legacy module or converting a JSON schema, I would assign it to a Junior Developer. It was boring work for me, but it was gold for them. It taught them the codebase, it taught them discipline, and it taught them how systems break.
Today, I don't assign that task to a Junior. I assign it to Copilot / Claude.
It is faster. It is cheaper. It is often more accurate (at least syntactically).
And that is exactly why the software industry is walking off a cliff.
The Broken Ladder
We are currently optimizing for short-term velocity at the expense of long-term survival. By using AI to automate the "boring" entry-level tasks, we have inadvertently removed the bottom rungs of the career ladder.
A Senior Developer isn't just someone who knows syntax. A Senior Developer is someone who has broken production 50 times and knows how to fix it. You don't learn that by reading tutorials. You learn that by doing the grunt work that we are now automating away.
If we stop hiring Juniors because "AI can do it", where will the Seniors come from in 2030?
The "Vibe Coding" Trap
I see a lot of excitement about "Vibe Coding", the idea that you can just prompt your way to a product without understanding the underlying code.
This works fine for a prototype. It is a disaster for longevity.
When a Junior writes bad code, I review it, we talk about it, and they learn why it was bad. They grow. When an AI writes bad code, I just re-prompt it. No one learns anything. We are filling our codebases with logic that no human fully understands, maintained by a generation of developers who never learned the fundamentals because the machine did it for them.
The Knowledge Gap
We are creating a "Barbell Distribution" in tech:
The Super-Seniors: Developers with 10+ years of experience who use AI as a force multiplier. We are becoming 10x faster.
The AI Users: People who can prompt but cannot debug a race condition or understand memory management.
The middle is disappearing. The path from Group 2 to Group 1 is gone.
What Happens Next?
I don't have the solution, but I know the current path is unsustainable. Companies need to stop viewing Junior hiring as "charity" or a "cost center" and start viewing it as an existential insurance policy.
We need to hire Juniors not to write code (AI can do that), but to audit AI. We need to teach them "Forensic Coding", the art of understanding why the machine hallucinated.
Discussion
Are you seeing this in your company? Is your team still hiring Juniors, or has the pipeline frozen?
Junior devs: How are you finding the job market right now? Senior devs: Are you worried about who will replace you?
Let's talk about it.
Top comments (172)
Great article - really enjoyed it! This is exactly how I see the future heading.
You're almost there too! 😁 Okay, you have a bit more leeway than me, but as a senior developer... 🤔
Hahaha exactly, Pascal 😄 We’re getting there!
Great picture 😂!
And here I was thinking standups would go away with our new AI overlords.
Glad you enjoyed it! It is reassuring (and a bit worrying) that so many of us are seeing the exact same trend. We really need to figure out how to bridge that gap before it is too late.
love the picture btw 😂
It was crafted specially for this post - I just couldn’t resist 😄
Haha hillarious! 😄I love the humor!
haha! It is so true
Kinda seeing myself in the lady at the front.
omg
and now think that you are a career changer. (i am).
I am that guy, i mean, will be :)))
With all due respect, I beg to differ. The junior developer is neither extinct, nor would it be - some thoughts shared in this article here - dev.to/shitij_bhatnagar_b6d1be72/d... (in case interested).
And as far as worries is concerned, every developer junior or senior has some apprehensions (that's what I have seen), however with time that will get clear.
Thanks for the article.
I appreciate the rebuttal, Shitij! You are right that every generation has its apprehensions. My worry is specifically about the velocity of this change compared to previous shifts. But I am genuinely happy to see a differing view, if I am wrong and the role is safe, that is the best possible outcome for everyone!
Thanks for your openness, appreciate your note.
I agree on the velocity aspect however my take on currently over-hyped themes is that there is lot of general messaging while very less specific messaging in public domain on AI 'real use'. Let me give an example, how does a software developer (junior or developer) use AI effectively - we hear everything under the sun as answer sometimes, but no practical examples from daily life e.g. one real life example is when we do load testing and run a 1000 requests against the service (REST), we get 1000 responses, I want to know which requests were fastest, how many took between 100-300 ms etc.. this analysis is what AI does for me when I give it the log file that contains the requests and responses.. its a time saving and I carefully look at the final summary 'information' from the data i.e. log. Of course, I verify what AI has given. Having said that, I am yet to see a single article or insight from any software developer that says, these are the 10-20 types of tasks I do in a Sprint (e.g. creating a confluence, tagging JIRAs with a release version, baselining code, creating a feature branch and so on) and out of these 20 tasks, task 1, 2 and 3 are where AI is able to be the multiplier for me / save my time.. I think that's a nice idea for an article as well :-)
Hope you see my point mate.
Personally, my view on this is that it up to all of us on communities such as DEV to ensure those coming into the sector (such as myself to an extent), are shown that fundamentals still offer the most solid of foundations and that AI should be seen very much of a tool that you do not turn into a crutch. Junior developers will be needed more than ever when the dust settles on the AI bubble, and for more than vibe coding.
Spot On :-)
I share your optimism. Once the initial hype settles and companies realize that maintaining AI-generated code actually requires deep knowledge, the value of a solid Junior who understands the basics will skyrocket again. We just need to ensure we keep teaching those basics in the meantime.
Excellent point, mate. We are drowning in general AI advice but starving for practical, sprint-level workflows. Using it for load-test analysis is a great example of high-value/low-risk AI usage.
That list of 20 tasks is something the industry needs right now to set realistic expectations. I might just take you up on that idea for a future post, or I’ll be the first one to read it if you write it!
Couldn’t have said it better myself. What’s that saying again? Oh right - those who can, teach.
Exactly! I truly believe that you don't fully understand a concept until you can explain it to a Junior (or write about it). Teaching isn't the fallback option; it is the mastery level. Thanks for the support, Richard
You're more than welcome!
Thanks for your note and appreciate the pragmatic inclination.
I think from my perspective, you and the author agree, that losing junior engineers is bad for the development of the industry.
I can tell you from experience that the junior hires in the past company I worked for ended up being the most ambitious and loyal years down the line. This is because the company was perceived as willing to invest and trust in them. This pays off in dividends and is a win-win for both parties.
The consequences also impact senior devs. The role of senior devs is also to mentor more junior devs. There are many benefits to this relationship:
I agree with you that the question shouldn't be to stop hiring junior devs but to adapt the training to this new era of software development.
We often focus on what Juniors 'cost' in time, but we forget what they contribute to Senior growth. If you have no one to mentor, you lose the opportunity to refine your own understanding and develop leadership skills. A Senior with no one to lead is just a high-paid individual contributor.
This really resonates with me. I use AI daily as a productivity multiplier, but I’m glad I learned by breaking things first—debugging weird bugs, fixing legacy code, and understanding why systems fail. That grunt work is what gave me intuition, not prompts.
AI is great for speed, but if juniors only learn what to ask and not why things work, we’re setting up a serious skills gap. I think the future junior role should be about reviewing, debugging, and reasoning over AI-generated code, not just shipping output. Otherwise, we’ll be fast today and fragile tomorrow.
I really like your idea of the junior role shifting toward reviewing and reasoning. It is actually a much harder skill to audit code than to write it. If we can pivot junior roles to be about "forensic debugging" rather than just shipping features, we might actually bridge that skills gap you are talking about.
Exactly! You can't audit what you don't understand. I have used AI systems to write codes, they are fast, but if you aren't experienced enough you won't catch what I call - "the clean code bugs". Up till now, I'm not comfortable with AI generating huge codes.
The clean code bugs is a perfect description. That is actually the scariest part. The code looks professional and follows best practices, so your brain lowers its guard, but the logic is completely hallucinated. That is exactly why deep knowledge is still required.
Apologies in advance, as this is probably more subject-adjacent than directly on-topic, but seeing all the discussion about AI adoption on DEV got me thinking about the sheer amount of money being poured into this technology.
Of course, the wealthy have always spent like this; for some reason it reminds me of a line from Del Amitri’s 1989 song Nothing Ever Happens: "…American businessmen snap up Van Goghs for the price of a hospital wing."
With AI, I can’t help but wonder: how can the bubble ever offer a return anywhere near the ratio of money being invested - especially once you factor in the potential costs of repairing the environmental impact?
The math probably doesn't work out. Right now, Big Tech is burning cash not because the ROI is guaranteed, but because they are terrified of not owning the platform if it does work. It is an arms race, not a business plan. Most of that money will likely evaporate, just like in the dot-com boom.
Could not have said it better myself, NorthernDev!
Thanks Richard!
I do not know why, but I feel like what's going on in the software industry might be the tech giants' monopoly. But I believe in one thing: the workload in the background requires more effort than what we present as the product. "In code, it never pays to rush."
Blog Article by Robert C. Martin:
I agree completely. We are currently in a period where the industry is obsessed with speed, but as Robert Martin says, it never pays to rush. AI gives us the illusion of progress because we see lines of code appearing quickly, but we are losing the deep thinking required to make that code sustainable.
I completely agree with both of you. There’s a lot going on behind the scenes in software that users never see, and as Robert Martin emphasises, rushing never pays. AI can make it look like progress is happening - lines of code appear fast - but without deep understanding, that "speed" is an illusion. Developers who can’t fully explain their own code risk maintainability problems, security vulnerabilities, and fragile systems.
In many ways, it feels like "embrace, extend, and extinguish" on steroids. Big Tech is pushing tools that accelerate development, but also increase reliance on their platforms and reduce decentralization. The marketing leans heavily on FOMO, encouraging adoption before the implications for control, privacy, and long-term security are clear. Fast code is tempting, but without comprehension, it’s a shortcut that could break both the software and the teams that build it.
True, and it's deep! As long as we have legacy-building seniors who know that software engineering is not only coding but also serves more than that. The juniors need to follow them and their case studies. And I believe we will not be replaced but will be assisted by AI. Those who want to replace humans are not only biased towards humanity but also towards themselves as well.
I think you've hit the proverbial nail on the head, Ruqiya. Thanks for sharing that further insight!
I love the idea that this speed is an illusion. Generating lines of code is easy, but building a cohesive system is hard. If we raise a generation of developers who only know how to extend what an AI started, we are creating a fragile ecosystem. The moment the environment changes or a unique problem appears that isn't in the training data, the whole structure will collapse because nobody knows how to fly the plane manually anymore.
I hope you are right that the assistance model will win out over the replacement model. The bias toward replacement usually comes from a desire for short-term profit, but it ignores the human effort required to keep a system healthy over decades. We need to keep advocating for a future where AI handles the chores while humans handle the engineering.
Yes, you are absolutely right. This "short-term profit" manipulates or steers the human and AI interaction in a bad way. But I believe juniors like me are more enthusiastic about the AI era, and they will build efficient models in the future. The confusion or fear in us is only because of the haunting notion that AI will replace us. The debate is long, but both sides are right. Side 1 is the "optimistic" approach to AI, and Side 2 is fighting or presenting the "facts." Both should go together.
I love your take that both sides need to coexist. You can be excited about the technology while also being realistic about the industry risks. That balance is what keeps us from being blinded by hype. If juniors keep that enthusiasm and use AI to build better things rather than just more things, the future looks much better.
Hello - Junior dev here!
I have been wondering these same thoughts for a while. I entered knowing that "AI was taking over the world." But I am a big picture type of person.
The last three years of my life: coursera, a web development apprenticeship (low pay, good experience), a very part time teaching assistant gig, a 9 month stretch at 35 hour a week IT job with not a single benefit or paid day off (low pay to might I add). I took that particular job because I knew I would learn more, and it was tech-related. All while working on my second bachelor's degree, side coding projects, and rummaging through comptia books. I've been teaching myself and falling on my face - and I know im not alone.
The junior devs are out working 3 side hustles to fill the fridge. They are out terminating cables in the freezing cold. (Yeah, I did that) They are against all odds out there, determined and willing.
Im currently the tech support for a middle school. Averaging 5-15 Chromebook repairs a day. Sniffing for signs of code. The middle schoolers have found a way to get around some things on their Chromebooks and I have put myself on a secret mission.
Keeps me sane I guess. 😏
At the end of the day, when companies are begging for new people - I hope to be at the front of the line.
You are exactly the type of person who will survive this shift. My article was worried about the juniors who expect AI to do the work for them. You are out there doing the actual hard work. That IT and hardware experience will make you a much better senior engineer one day because you understand how the systems actually connect.
That's what im hoping for! Thank you for your kind words, I appreciate that. I actually enjoy the act of coding. I found that chewing on a solid problem for hours is way more rewarding than scrolling through fruitless social media posts. Im sure there are arguments that coding is stressful. But honestly, to me, it just makes me want to figure out the unsolvable problem even more. All my problems disappear when im working on a project. Bills? Gone. Stress? Only code related. Phone calls? None existent. 😂
I do find using AI fun and exciting. But it dilutes knowledge and experience for beginners. I am thankful to have a fullstack apprenticeship under my belt so I can defend anything I might share to some degree. That being said, I recently built an app with AI prompts and I ended up feeling kind of sad at the end. However!!! LOL - then you can use that as a tool to see what the AI used and learn from it to build more custom apps and situations. There is alot to be said about this.
I think there is now some anxiety about hiring Jr devs because what if they are fakes that somehow get hired and manage to fly under the radar? Does this happen? And what is being done to prevent it so people that actually care are noticed, I wonder. Sorry, that's alot. 😂
That feeling of being a bit sad after the AI does all the work is very real. It is because the reward in coding comes from the mental struggle, not just the finished app. If you skip the climb, the view from the top doesn't feel earned. Regarding the fakers, companies are definitely worried about it, but those people usually get exposed the second they have to debug something live without a prompt. Your background in IT and hardware is your best defense because it proves you actually know how things work under the hood.
A dicotomous comment from me:
70% of my dev team have been juniors. In the last 4 years, I've never lost one of them, and they have become great members of the team, excelling at what they do. My next round of recruitment will be juniors again. It's juniors all the way down for me.
On the other hand, I can't help feeling that the problems you describe are transitional problems. I agree they exist now, but I'm not convinced they will exist in 10 or even 5 years. I consider myself a good software architect, innovative and at times in my career, building things that were commercially highly successful while being very unusual and out of the mould. Right now, I'm feeling that "senior power-up" you identify - I'm still way smarter than the machine, albeit it knows every tool, package and API like the back of its hand. I can believe a time will come soon when it is out-thinking me, where my desire to architect will be a discussion of equals - then later, I will be the junior struggling to understand.
Clearly, my decision-making will be based on what I can see today. My budget for inference in the new financial year will be 6 times the current year's budget. Some of that could have been for salaries, I guess - but as I say, I'm still hiring. We're all playing a balancing game right now, wondering about the future, making decisions as if the future were already here (when it might never be), is a mistake I'm trying hard to avoid.
Your zero percent turnover with juniors proves that the role isn't extinct, it is just being poorly managed elsewhere. If we stop hiring them now because of what AI might do in five years, we are just creating a talent vacuum for ourselves later. You are building for the current reality instead of a hypothetical future.
I prefer a Junior developer that can understand, learn and make questions before starting to code than a AI that you have to micromanage with most of the times dedicating more effort than you would apply to a real human being junior. An AI is an eternal junior, for a
human beingreal person, Junior is just a state. We get experience, we have background, we acquire judgment.I totally agree. Prompt engineering often feels like extreme micromanagement. At least when you mentor a human junior, they learn from the mistake and don't make it again next week. With AI, you have to correct the same context errors over and over.
20+ years senior here.
This is only the first step of being an AI-augmented dev. When you'll learn about SKILL files, your AI will not do the same error again. Juniors are human; a few weeks later, they can do the same mistake again.
I have both juniors and Claude on my project. Claude with SKILLS takes me less time to manage directly, even against juniors using Claude.
But we still have to have juniors as future seniors.
You're right but you are missing something really important. AI has no understanding, AI never will ask questions about something that could have no sense in the domain you are working on. Even using SKILLS, maybe this Artificial Junior won't make the same error again, but it will never be something able to activate your brain by questioning things because it will never get understanding of anything. AI is sycophantic, something that will provide you what you want to hear. Something that statistically fits best with the input you have provided.
And for me this is a key difference. I want to work with real people able to confront ideas, that provides real intelligence, real value, not with a Probabilistic Machine.
IMHO AI is a powerful tool to help you to fix bugs, analyze legacy code, giving a first version of the code you want to write. Use AI to replace juniors or people in general is a big mistake.
I understand and mostly agree; but 3 things
Maybe the reasoning phase is not considered as statitiscs but it is far beyond to reach the same level of a regular junior. A junior, event a not competent one, has the ability to learn, really learn and understand. So at the end it will be acquire the needed judgement to audit the output of the AI.
I completely agree, we can rely on AI for the simplest tasks we could assign to a junior, but what scares me is accountability, If we can't understand and then properly audit what AI has done, who is responsible if something fail?
By the way, thanks Benoit for this interesting discussion, I'm really enjoying it!
I enjoy it too !
Claude will always be a junior, for the reasons you already gave. Accountability is for seniors. A junior supervising Claude will give sub-optimal results. At least a third of developers will still be needed as super-seniors and future seniors.
x3 boost in productivity means 3x less developers needed but this is also a revolution that generates more software projects.
What concerns me is the perhaps half (?) of developers unneeded anymore.
More productivity means more software entropy, which means more maintenance work that will lead (probably) to the need of more developers able to manage this fast rise of entropy.
Not worried, but...
From the experience I have it feels that higher educations except university focused more on syntax and frameworks even before AI.
So the fundamentals were already on shaky ground.
The people that are really interested could buy books and then they knew the books where based on experiences from other people. The problem with AI letting explain things to you is, how do you know it is not hallucinated? And the scary part is people want AI to start teaching.
And now I come to the let machines write code part. If you never saw the code how can you review it? I had several instances this week where people fully relied on AI to tell them the code is working and they moved on. The few occasions where I could see the code, the tests didn't gave me much confidence that the code was robust enough to withstand malicious attacks.
So it is not only an influx problem of people that are AI-first developers, but also a over reliance by more seasoned developers.
The point about seasoned developers is so important. It is not just an influx problem, it is a discipline problem for the whole industry. When senior engineers stop reviewing code properly because they trust the AI, we are losing our most important safety net. If even the experts get lazy, then the juniors have no chance of learning what good actually looks like.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.