Hiring only senior engineers is killing companies

In the last 3 months, I've interviewed 134 engineers - students, mid-level, seniors and even CTOs. 

My main takeaway: there is a huge pool of exceptional junior engineers that most companies won’t even consider. 

While everyone else is fighting over seniors, smart companies can get a significant advantage by going the other direction. If you won’t, your competitors will.

I’m not alone here. In the beginning of 2025 Shopify recently hired 25 interns (and their head of engineering said he aims for 1000(!) more by the end of the year, saying that: “...interns bring energy, drive and intensity that pushes the whole team forward.”)

Why do companies avoid juniors?

Every company has a different excuse:

  • In small startups - “we are a very small team and we don’t have time to mentor juniors, we need engineers who will be very productive from day 1"

  • In medium-sized companies - “we are going to grow very fast, we need engineers who can handle scale and have faced such challenges before"

  • In big companies - “our infrastructure is super complex, it’ll take juniors too long to ramp up".

It's safer to hire someone with 4+ years of experience who can contribute from day one, even if their ceiling isn't as high as a motivated junior engineer.

So colleges continue churning out graduates who can't get a job, while companies complain about how hard it is to find senior engineers (and pay premium rates for them).

The thing is that many of these "experienced" hires aren't actually that much more productive than a well-mentored junior engineer.

Software development is not rocket science. There are diminishing returns, you will get better with time, but the pace will become slower. You can tell the difference between a developer with 1 year of experience and one with 5, but between those with 10 vs 15? Probably not.

The most critical parts (motivation, ambition, character, and brains) have little to do with experience.

What companies are missing

The main mistakes companies make:

  1. Old assumptions about onboarding time. Companies assume junior engineers need 6-12 months to become productive, but AI-savvy juniors can get up to speed much faster. They can use it to understand codebases (without interrupting team members), generate boilerplate code, and learn new technologies at an accelerated pace.


  2. Outdated interviews - most technical interviews still focus on algorithm memorization and whiteboard coding. These skills are less relevant when AI can handle all those known problems.


  3. They don't know where to find amazing juniors - companies recruit from the same places and miss the hidden gems. A perfect example: engineers who applied to Y Combinator but didn't get in. They are very often impressive people with strong motivation and drive.

Before I share my take on junior interviews, let’s talk about what’s so great about them:

Why I love working with juniors

  • Juniors are not restricted by what they know.  They haven't been trained to think "that's just how we do things." They’ll not try to reuse the same technologies from previous companies, or recreate those ‘amazing’ design patterns that were useful only in a specific context. It’s not just being AI-native, it’s about having less resistance to change. 

  • Great juniors learn fast and search for feedback. It’s easier to manage them. They want to improve and know what you think about their work.

  • Loyalty. engineers who you train from the beginning tend to stay longer. They understand your systems deeply and can mentor the next generation of junior engineers.

  • Higher ceiling. A motivated junior engineer often has more upside. You're getting someone at the beginning of their growth curve rather than the middle or end.

  • Juniors bring fresh energy to the team - they want to learn, and they have a drive to prove themselves and succeed. Their motivation can be contagious!
    The existing seniors in your team will enjoy working with smart and motivated developers.

Before we continue, a side note:

The argument here is not to stop hiring seniors. To be effective, juniors need people to mentor them, do high quality code reviews, and so on. And in addition, for some critical challenges, you would still want people who’ve done those before at other places.

Ok, so you’ve decided it’s worth giving some juniors a chance. Now comes the hard part. As there are so many juniors looking for a job, it can be difficult to find the right ones. Here’s the process that worked for us:

How to hire the right junior engineers

Most companies are still hiring like it's 2019. AI has fundamentally changed how we write software. If your hiring process hasn't changed, you're probably hiring the wrong people. 

For some reason, companies still ban AI during technical interviews. They're optimizing for skills that matter less while ignoring the skills that actually determine success on the job.

Here’s our hiring process in 5 steps:

1. Filter for the right mindset

  • Ask about projects they've built, then drill deeper. Ask "Why did you build this?" and "How does that work?"
    Keep drilling down until you hit the bottom of their understanding and whether they can think through complex problems.

  • Look for passion and curiosity. You want the ones who light up when talking about their projects. They should show real excitement about the problems they've solved. These conversations should be energizing for both of you!

  • Watch out for red flags. The ones who get defensive when you ask follow-up questions or can't explain their work past the surface level are probably just chasing a tech salary. 

2. “Use whatever tools you like" home assignment 

A small and realistic coding challenge with explicit permission to use any tools they want. 

The key is what happens next - we schedule a 30-minute follow-up where they walk through their solution. We ask them to explain their approach, then drill deeper on their reasoning - asking "Why did you make that choice?" or "how does this part work?". We keep going until you reach the limits of their understanding.

Do they understand the code they submitted? Can they explain design decisions and trade-offs? How deep is their knowledge of the technologies they chose?

3. Problem solving without AI

A ~40-minute interview to test their ability to think through complex problems and design solutions. We focus on system design, architectural decisions, and reasoning through trade-offs. 

Yes, they will use AI in their job even in those tasks, but we also want to see if they can think for themselves, and what is their fundamental engineering thinking.

4. Live implementation with AI

We give them 20 minutes for a small live coding task and see how they work with AI tools. Their prompting strategies, how they iterate on AI output, and whether they can effectively guide the AI toward solutions that make sense.

5. Evaluate their AI strategy

Then, we ask candidates to walk us through their typical development workflow. 

We ask them to explain when they choose AI assistance versus manual coding, ideally with specific examples from projects they've built.

The engineers who can’t think without AI hit walls when they encounter new problems.

The ones who resist AI are outpaced by peers who go all-in with the new tools. 

We look for engineers who excel in both phases - the ones who understand the huge benefit AI provides, but also know where it hurts.  

Making it work after the hire

Congrats! You’ve hired a new junior engineer. What’s next?

Here’s my take:

  • Invest in mentoring infrastructure.
    Don’t just assume they can use AI to learn everything. Make sure your experienced engineers have the time to pair with them, create clear learning paths, and be available for their needs. 

  • Be patient with short-term productivity. Don’t expect them to produce magic because they are ‘AI-native’. Yes, they should be fast, but give them the proper time to learn the basics of your company.

  • Measure the right metrics. Track how quickly junior engineers become productive, their retention rates, and their main blockers. We (very objectively) suggest using Weave to benchmark them to your current engineers and industry standards :)

  • Talk to them! Ask them about their experience, and what they think you could improve for the next juniors. Use the fresh perspective they bring, and come with an open mind to their suggestions. Also - make sure to appreciate their work and tell them when you do. Even if they are superstars - they might not know it, and could use some encouragement. 

  • Start small. Don't hire 10 juniors and let them run amok on your codebases. Start with 1-2 and learn what works (from the previous steps) before scaling up.

Why this matters more than ever

I believe most companies are making a huge mistake by avoiding juniors entirely. They're missing out on AI-native engineers who can learn quickly, adapt to new tools, and grow into really exceptional senior engineers quite fast.

This market inefficiency won't last forever. As we’ve seen with the Shopify example,  smart companies will figure out how to hire and develop junior engineers effectively. They will build incredible teams while their competitors fight over the same pool of expensive senior talent.

Investing your time in passionate junior developers will pay off in the long run. The question is whether you'll start now or wait until everyone else figures it out.