The Instant Solution to the Massive Shortage of Software Engineering Talent (2024)

There is a massive shortage of software engineering talent. I won’t even bother sharing the statistics. The pain you already feel is enough.

I was at a dinner with several CEOs of venture-backed companies with millions of revenue last week. Each leader shared their most pressing problem they needed help with.

They all had the same one:

“I can’t find enough software engineers to join my company, and salaries are too high.“

Well, there is an immediate solution to both problems.

In fact, there is only ONE solution. Ignoring it will make the problem even worse.

It will be obvious once I share it with you, but you will initially reject it. Do yourself a favor: entertain the idea for a moment.

Are you ready for it?

Here it is…

The ONLY solution is to hire remote junior software engineers.

I know what you’re thinking: that is not a solution. That is more problems.

It’s not. Let me challenge you here.

I will do it by answering five important questions:

  1. Why should you trust me?

  2. Why is hiring remote junior engineers the only possible solution?

  3. Why companies don’t want to hire remote junior developers?

  4. How can you solve the challenges of hiring remote junior talent?

  5. When should you NOT hire remote junior developers?

Why should you trust me?

Fair enough.

It’s easy — I’ve seen 400+ different companies hire remote junior developers.

How do I know those companies are happy with those remote junior developers?

Because after 12 months, 90% of them are still working for those companies.

I know all of this because I have a strong incentive. The same incentive that is driving me to write this article.

I’m the CEO of Microverse, a school that trains thousands of people around the world every year specifically to work remotely.

Not only that, the students only pay us if they get a high-paying job.

The tricky part is that 85% of our students are in the developing world where the only way to get a high-paying job is by working remotely.

That’s why we train them specifically to work remotely. More on this later.

Remember: if our students don’t get a high-paying job, we don’t get paid.

If they lose their jobs, we stop getting paid.

We know when the companies are not happy because our students get fired and we stop getting paid.

Believe, we would be out of business if this wasn’t working.

It is working, and we have raised $17M so far from investors who have seen our numbers.

Can we continue?

Why is hiring remote junior engineers the only possible solution?

It’s pretty simple.

There are 10 times more open jobs for software engineers than mid-level and senior-level engineers available.

If you think the solution is to compete by paying top dollars and a great culture, good luck.

Do you really think you can pay in the top 10th percentile and offer a culture that is that much better?

Good salaries and a great culture are a necessary condition in this market, not a sufficient condition.

The ONLY solution is to hire remote junior software engineers.

If you think the solution is hiring senior developers, but remotely, good luck too.

Hiring remotely was an advantage a few years ago. The pandemic changed that.

Senior developers in every corner of the world who speak English have tons of high-paying job offers already.

The ONLY solution is to hire remote junior software engineers.

You can’t create senior developers out of thin air.

Senior developers are first born junior developers.

Senior developers are like Charizard. They need to be evolved from a much less impressive Charmander.

The Instant Solution to the Massive Shortage of Software Engineering Talent (1)

Charmander can also win tournaments and kick ass. Can’t it?

You don’t need to evolve your junior talent in order for them to add value, though.

Junior developers can make a huge difference in the short term.

Junior developers also grow and become mighty senior developers in just a few years.

I’ll show you how to win the market and kick ass with Charmanders in your team.

Why companies don’t want to hire remote junior developers?

Onboarding and mentoring junior talent is hard. Doing it remotely is even harder.

Junior talent needs a lot of attention. Providing that attention in a remote and asynchronous environment is expensive for your senior developers.

Junior developers don’t know how to manage their own time efficiently.

They don’t know when and how to ask good questions.

They get stuck often and have a hard time unblocking themselves.

You don’t know when they are stuck and need help.

They also don’t know your company culture, and giving them strong role models to follow in a remote environment is hard.

The Instant Solution to the Massive Shortage of Software Engineering Talent (2)

There are many other reasons why companies don’t want to hire remote junior developers. I won’t waste your time listing them all.

I just want you to know that I feel your pain. I understand your pain.

Still, the ONLY solution is to hire remote junior software engineers.

If you need a reminder of “why”, scroll up and read the previous section again.

Here is the good news, though: there are easy solutions to all those problems.

Some companies get it and they have a much easier time growing their engineering teams.

I will tell you how you can do it too.

In fact, I will tell you why you should make a few changes even if you don’t plan to hire remote junior engineers.

I will also tell you about what we are doing at Microverse to make this easier for you.

How can you solve the challenges of hiring remote junior talent?

Here is a secret — the reason remote junior developers don’t do well in your company is that you have poor remote working practices.

The reason junior developers do better “in person” is because “in person” allows us to not have to follow best practices.

If you are “in person”, you can do things sub-optimally and your company might still do alright.

If you are “remote”, your company will only do well if you’re following best practices.

The “best practices” needed to support junior developers working remotely are the same best practices that all remote companies need to follow.

You don’t need to do anything special for junior developers.

You need to do something special to create an awesome remote working experience for your entire company.

What are some of those best practices? It’s all about communication.

First, you need to support and push for as much asynchronous work and communication as possible.

This is really hard for most companies, but it’s extremely important.

People working remotely thrive when they have the autonomy and trust to work asynchronously without being blocked all the time.

This means you need to be really effective, concise, and explicit in your written communication.

This means you need to have great documentation about your company culture, your processes, and your code.

It also means you need to have a great onboarding experience. Having everything well documented will make that much easier.

Autonomy and asynchronous work doesn’t mean that we work alone, though.

How do you get autonomy and collaboration to work together?

The answer is transparent communication.

We all have questions while working. We need each other.

Where do your senior people go to ask questions?

The first step should be documentation. And Google.

The second step should be a transparent Slack channel or similar.

Don’t silo answers and questions in private DMs.

Create a public channel for people to ask questions when documentation is not enough.

Make answering questions a horizontal endeavor rather than a vertical one.

Don’t get junior developers to ask questions to their managers. That scales poorly.

Get other developers (even other junior developers) to be able to help each other in a public channel.

Creating a great asynchronous working culture will make junior developers much more likely to be autonomous very quickly.

Secondly, you also need to learn how to use sycnrhonous communication effectively to build a vulnerable working culture.

“How are those two things related?”, you might be wondering.

First, you need to understand the importance of socialization in a professional setting.

Socialization happens naturally when everybody is working in the same office.

Coffee breaks, beers after work, a ping pong break, or a weekend plan.

None of those things are possible in a remote setting.

However, socialization is critical for team members to bond with each other.

Without bonding, it’s hard for people to be vulnerable.

Why is vulnerability important?

Because, otherwise, people don’t feel safe asking questions and recognizing their mistakes.

Junior developers, more than anyone else, will need to ask questions and will need to make mistakes and learn from them.

Without a culture that rewards vulnerability, junior developers won’t ask questions and will be afraid of making mistakes.

In an environment like that, junior developers won’t grow and won’t be productive.

And that’s where synchronous communication comes in.

You can use synchronous communication to create the space for personal bonding to happen and for vulnerability to show and be rewarded.

Daily standups help people feel more connected to each other and see the roadblocks and mistakes of other team members.

Weekly informal activities to talk about personal stuff will also help team members connect as human beings.

Humans make mistakes.

Knowing other senior team members are humans will make junior developers feel more inspired by them and more open to asking questions and admitting mistakes.

Pair programming is another type of asynchronous communication that can be wonderful to help junior developers grow.

Most time, the junior developer will be watching the senior developer work and will learn in the most direct possible way.

When the time for the junior developer to write code comes, the senior developer will also benefit from having to guide the junior developer and identity their own gaps.

Asynchronous and horizontal communication, transparency, vulnerability, bonding as human beings, celebrating mistakes, and collaboration.

They are all key to supporting the growth of junior developers and making them effective team members.

But those are best practices for any organization, regardless of whether they are working with junior developers or not.

If those are best practices in any case, why wouldn’t you implement them?

When should you NOT hire remote junior developers?

It’s very simple.

If you don’t have at least 2 senior developers who can (and are willing to) answer any questions from a junior developer, you shouldn’t do it.

Otherwise, you will be setting the new developer up for failure.

As your team grows, you don’t need to have 2 senior developers for every junior.

Eventually, mid-level developers start helping the entry-level ones, while the senior developers can support mid-level ones.

If you keep communication open, transparent, and horizontal, peers of the same level start being able to help each other too.

If you then use those conversations to improve your documentation, your onboarding, and your code, then you start seeing the power of economies of scale.

The sooner you invest in this, the sooner you will benefit from it.

Investing in developing talent compounds with time.

As with any good investment that compounds, you should start investing early.

Once you are ready to move forward with hiring remote junior developers, start small.

Try hiring only one person and seeing how it goes for 3 months.

Learn from that, improve, and repeat.

You can probably add two junior developers in the second iteration.

The good news: the more you do this, the more junior talent will love your company, and the easiest it will be to attract the best possible talent.

At Microverse, we only accept 0.5% of the people who apply to join the school. As of April 2022, for example, we receive 40,000 applications per month.

We’re only selecting ~200 of them.

When someone gets accepted, we do a lot of the hard things that companies would need to do in order to take junior talent onboard.

We save companies the first year of the learning curve for new talent joining a company remotely.

We work on improving their written communication.

Students spend more than 1,000 hours practicing their English.

They learn to self-organize their time and work.

They learn when to reach out for help and how to ask great questions.

They get used to working with strict deadlines with minimum direction.

We also get them to appreciate the importance of punctuality and proactive communication.

We improve their soft skills and teamwork abilities.

They do that through pair programming and receiving code reviews every day.

And, most importantly, they learn in a highly-collaborative environment with people from more than different 100 countries and cultures.

Unlike most professionals, our students are already prepared to be autonomous and effective as part of any distributed and multi-cultural team.

Being able to hire at all levels and in all parts of the world, you shouldn’t aim lower than that.

You don’t need to.

This will almost magically solve your problems growing your engineering team.

The ONLY solution is to hire remote junior software engineers.

PS: subscribe below 👇 if you want to get more articles on hiring and managing global talent, remote work, and the future of education. If you are ready to explore hiring international talent ready for remote work, you can also use the button below.

Hire global talent

The Instant Solution to the Massive Shortage of Software Engineering Talent (2024)
Top Articles
Latest Posts
Article information

Author: Dan Stracke

Last Updated:

Views: 5711

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.