Auto-translation used

Bad strategy: take only experienced developers

A free translation of the original publication by Anton Zaides, under every word of which I personally am ready to subscribe (including as a person who right now has 2 interns and one intern on projects).

Each company has its own excuses:

In small startups, "we have a very small team, and we don't have time to train newcomers, we need engineers who will be effective from day one."

In medium—sized companies, "we are going to grow very fast, we need engineers who can manage scaling and have previously faced such problems."

In large companies, "we have a complex infrastructure, it will take a long time for beginners to get used to it."

It's all nonsense.

And I'm not talking about age here. There are 25-year-old senior employees, and there are 40-year-old newcomers who have changed their field of activity.

Software development is not about flying into space

Some developers become seniors in less than 3 years, some even without specialized education. If you don't believe me, read the stories of Jordan Cutler, Tiger Abrodi and Ryan Peterman.

I'm not saying that in 3 years they will know everything — but they will be effective and will be able to solve most problems correctly.

As with everything in life, kickbacks can happen. You will get better over time, but your growth rate will slow down. Can you distinguish between a developer with a year of experience and one with more than 5 years, but between those with 10 and 15 years of difference? You probably won't be able to.

There are cases when you need a high level of expertise, and we will return to them now.

Getting a newly graduated student into an existing codebase and training him so that he becomes productive is not that difficult — and will take only a couple of weeks.

Inexperienced developers can achieve great success:

  • Evan Spiegel and Bobby Murphy founded Snapchat in 2011, when they were 21 and 23 years old, they were students.
  • Zuckerberg was 20 years old when he started Facebook.
  • Drew Houston was a student at 24 when he founded Dropbox.
  • Larry Page and Sergey Brin developed the first version of Google at the age of 24, also as students.
  • Bill Gates founded Microsoft at the age of 20 (and Jobs was only a year older when he started Apple).

If students can create successful companies, I am sure they will be able to create a new screen or microservice. Yes, I know that most of them were programming geeks who started writing code in high school.

But here's the thing—ambition, character and intelligence have little to do with experience.

Why it's worth hiring a junior developer for the next open position

You are a team leader and you need to hire another developer for your team.

I was in your place. Over the past 2 years, I have hired 5 developers — two seniors and three juniors. All the Junes are still on my team, and they're definitely not Junes anymore.

5 Reasons Why Hiring a Great Junior Is The Right Bet For You:

  • You have more candidates and you can get the best ones. When you are looking for a full-stack developer with at least 5 years of experience in Python and at least 3 years in React, you will have fewer options, and eventually you will have to compromise.
  • Junes bring fresh energy to the team — they want to learn, and they have a desire to prove themselves and succeed. Their motivation can be contagious!
  • Experienced members of your team will be happy to work with smart and motivated developers. This will give them the opportunity to mentor and teach, which they may lack if there are only seniors in the team.
  • Junes are not limited by what they know — they will not try to reuse technologies from previous companies or recreate those "cool" design patterns that were useful only in a specific context.
  • Junes are more open to working with new technologies and less picky about the tasks they need to complete. This does not mean that they need to be forced to fix unpleasant mistakes all day, but it gives you more flexibility in the team.
  • Good juniors learn quickly and seek feedback, so they are easier to lead. They want to grow and want to know what you think about their work.

And the biggest reason is:

Junes have internships and student positions

Each of the three junos I hired to my team started out as students/interns. This means that I could evaluate their skills before offering full-time employment.

This is an advantage that you never have with seniors — and often both sides suffer because of it. Developers stay in medium-sized companies longer than necessary for a resume, and managers will put up with average performers for fear of firing people.

The perfect combination

Sometimes you need to hire a senior with very specific knowledge, especially in large organizations. If you want to create an iOS version of the app, I wouldn't take someone who has never worked with Swift. Or if your performance deteriorates as you scale and you want someone to handle it, an experienced engineer is the best choice.

But for most teams working on a SaaS product, the ratio of juniors/seniors can be quite high. While junes need someone to learn from, many of them don't require a lot of time and attention in format 1:1. Here's a great analogy that I like:

Imagine your team not as a lake, but as a river. The lake is stagnating. There is no energy or motivation for change in him. The same is true for groups that stagnate. They cultivate mediocrity and contentment; they don't like risk. The river is always flowing and changing with a lot of amazing energy. You want a river.
The river depends on the flow of water, and your team depends on the flow of people and information. You can imagine people divided into three groups: new blood, new leaders, and elders ready for a new challenge. That's how these groups should balance and flow:
→ The largest group should be new blood.
→ For the flow, you want a steady flow of new blood becoming your new leaders and new leaders becoming elders.
→ The key to the flow is in the arrival of new blood and the departure of the elders. For this to work, you want your elders to move on before they clog the flow and disrupt the flow of opportunities for others. If you don't hire juniors at all, your team stagnates.

For about a year, my team had 2 seniors and 3 juniors. Six months ago, my lead developer, a girl, and I decided that it was time for her to move to another team where she could grow better (I lead the full-stack team, and she wanted to dive deep into the frontend).

At the same time, we survived and are still productive.

June does not mean exploitation

The whole point of hiring Junes is not to have "free labor", but to create a productive and loyal team. This is possible when you pay them what they deserve.

Paying Junes a little less (even if they are extremely talented) makes sense — you invest a lot of time and energy in their training, and it will take some time before they become effective.

But assuming that you hire excellent juniors, it won't take more than a year. After that, you should pay them according to their skills, not years of experience. Otherwise, they will just get middle/senior level positions in other places, and they will be right.

Anton Zaides (translated by Pavel Fedotov)

Comments 2

Login to leave a comment

Спасибо большое за полезную информацию! Да полностью согласен, иногда джунов очень выгодно брать если вы собираете лояльную команду на long-term! Банально отсеивая слабых, оставляя лучших, вы соберете себе в перспективе сильный коллектив!


Мне кажется, что работать с молодыми — это еще и перспективно. Где-то же они должны расти?!