In Defense of Junior Developers
by: Cory Hutchison
There is little agreement on the impact that AI will have on our economy and society, but one thing seems to be unanimously accepted: there will be no more need for junior level software engineers. While I can understand where this take comes from, please allow me to offer my counterpoints.

Where will senior engineers come from?
I feel that this is obvious, but so many people are missing this point that I think it needs to be stated: if we don’t have junior engineers today, where will tomorrow’s senior engineers come from?
If we can agree that AI is here to stay, and it will need to be maintained, monitored, enhanced, and improved upon, then who will be doing that work in twenty years? You might say that sufficiently advanced AI will be able to perform all of these tasks themselves, but consider what that means. Giving a superintelligent AI the ability to self-improve outside of human supervision, and with unlimited access to human knowledge, is the entire setup of the Terminator franchise.
Assuming we’re smart enough to avoid an apocalypse and maintain our AI models under human control, we’re going to need people involved for quite a long time. Models, the hardware they run on, and the software that tie them together are going to become increasingly complex over time, requiring doctorate levels of experience to merely understand them, much less enhance them.
The careers of those brilliant and highly educated people will begin as humbly as engineering careers for generations: as juniors. That is, if we don’t convince everyone who could do this work that there’s no future in it, and they should study something else.
Where will novel ideas come from?
Another, and possibly even more important, question that needs to be answered is - where will future innovation come from?
A truly novel idea requires leaps of logic and intuition, and lies beyond the scope of current knowledge and understanding. It takes genius to generate the kinds of questions that require new frameworks and schools of thought to even conceive and test.
Alan Turing envisioned computers indiscernible in their intelligence from a human in a world before computers even existed. The seed for Einstein’s general theory of relativity was imagining what it would be like to ride on a photon of light.
Because AI is trained on existing human knowledge, its capabilities are bounded by that knowledge. AI can create novel solutions to questions, but those solutions are still just variations of an existing human thought. AI isn’t capable of leaps of logic, of creating something with no antecedent, of asking a question that no one has thought to ask before and following where it leads.
If we relegate all of our software development over to machines and stop developing new engineers, who will imagine the things that don’t yet exist?
The true value of a junior engineer
This idea that we don’t need junior developers anymore because we have machines that can do that misses the entire point.
The truth is we’ve never really needed junior engineers. I’ve never worked anywhere that couldn’t easily survive losing their juniors all at once, and any organization that relies on junior engineers to push significant amounts of code into production is juggling lit dynamite.
So, why then has the junior engineering role existed for decades before AI? Because a junior engineer’s main responsibility in any organization is, and has always been, to learn. The deal is that juniors will work for low wages today in exchange for learning, and their employer expects that tomorrow that investment turns them into someone who contributes more than their salary.
Organizations need senior engineers and it’s far more efficient to grow them than to buy them. A senior engineer who has grown up in your organization knows the ins-and-outs, knows how things work, and is part of the culture. A new senior hire still has to learn all of those things, but at a much higher cost per hour.
I’d argue that AI hasn’t really changed the value proposition of junior engineers at all. They may be worth even less today than they used to be, but considering how complex IT organizations are becoming, the seniors that they grow into are worth far more.
How to Build a Career from Scratch
For young people considering a career in engineering, things are tricky. Not only are you fighting the perception that your career path is a mistake, but there’s no template anymore. The truth is that the traditional software engineering career path is obsolete for experienced engineers as much as juniors.
To be successful in today’s environment you have to understand the market. People don’t buy code anymore; they buy solutions. Someone with an idea wants to know that you can turn it into a reality. They don’t care if it’s no-code, low-code, AI-written, or analog, as long as it gets the job done. Do you want a long career in software engineering, immune to economic fluctuations and industry fads? Become the person who can simply get it done.
Communication - not comfortable talking to people? Tough. That’s no longer a luxury you have. Practice starting up conversations in real life or online. Ask people about their experiences, ask about their problems, ask for advice, ask for help. You’ll develop the skills necessary to elicit quality requirements from a stakeholder.
Recommendation: LinkedIn + local meetup groups
Prototyping - this is something I’ve always been afraid of, because I’m not a “frontend person”, but you don’t have to be anymore. This skill is critical because a lot can be lost between someone telling you what they need and seeing what you built them. Showing them what you understand quickly and cheaply is the heart of agile, embrace it!
Recommendation: Visily.ai (but there are a ton out there, just search “AI prototype generator”)
Coding - despite the hype, you’re still going to have to learn how to do this, but not alone. AI can help, just don’t trust it too far. Get comfortable with using AI to write boilerplate, debug, document, and generate unit tests. Don’t trust it with business logic unless you are going to code review and test the heck out of it.
Recommendation: VSCode + GitHub-Copilot (also Cursor)
Support - don’t just throw your stuff over the wall. Add logging, error handling, and other observability tooling so you know how users are interacting with your app and what problems they’re having. Most importantly, ask your first customers if you can watch them use it. I swear you’ll be shocked. They will use the tool in ways you’d never expect, because they’re coming at it from a different perspective. Learn to love criticism of your products.
Recommendation: posthog.com (provides product analytics, session replay, error tracking, and feature flagging)
You’re not going to be comfortable with all of this, and that’s an advantage. The days of sitting in your comfort zone and collecting a paycheck are over, and the future belongs to those who grow out of theirs.