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!
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!
Great picture π!
And here I was thinking standups would go away with our new AI overlords.
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 :)))
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.
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.
I think from my perspective, you and the author agree, that losing junior engineers is bad for the development of the industry.
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.
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 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.
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.
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.
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
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...
Some comments may only be visible to logged-in visitors. Sign in to view all comments.