Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Articles Hiring and Retaining Developers - Creating Great Teams

Hiring and Retaining Developers - Creating Great Teams

Leia em Português

Key Takeaways

  • Employee referrals is one of the most effective methods to hire talent.
  • The most popular requirements for candidates are willingness to learn, cultural fit, work experience, and technical tests.
  • Interesting/challenging work and great team culture are the most popular promises to attract developers.
  • Top performing teams motivate developers with challenging tasks and great team culture. These also play a key part in retaining them.
  • Hiring remote developers or outsourcing software development could significantly ease the hiring pressure. But it demands coordinated communication and transparency.

Every time when I talk with a developer manager one way or another we end up talking about hiring developers. And it happens for a reason.

According to the US Bureau of Labor Statistics, employment in all computer occupations is expected to increase by 22% by 2020. 

This trend not only valid for the US, but also indicates a global trend.

Apart from talking with a dozen developer managers, we wanted to learn more about their challenges. From the State of Software Development 2018 report, it turned out the biggest challenge developer managers are facing is hiring developers.

We know that the global demand for developers is increasing and dev managers have to face the hiring challenge every single day.

In this post, I compressed all the data we uncovered about hiring software developers and added some actionable tips to successfully hire and retain talents in 2019.

What are the most effective hiring methods?

We’re always curious how others do things we struggle with. We want to know all the best practices so we don't have to reinvent the wheel again.

When it comes to hiring, companies tend to shoot in the black, gasping for many different ways to ease the hiring pressure hoping that it will deliver the expected results.

But one thing is certain, there is no magic bullet for solving the hiring challenge. The only way to ease it is through systematic efforts and experimentations.

Every company is different so chances are there is no one size fits all solution, but it turned out that the top three most effective hiring methods for tech companies are:

  1. Employee referrals
  2. Having an in-house recruiter
  3. Professional connections

We wanted to know if there is any significant difference between small (<20 employees) and big companies (>100 employees).

So we dug deeper.

After segmenting the data, it turned out that small companies tend to rely on employee referrals and personal networks and it’s also common that they don’t have well-defined processes and methods for hiring.

When we looked at the big companies the methods were a bit different. They can afford to have a dedicated recruiter who takes care of the hiring and also the employee matters in the company. Big companies also rely on employee referrals to attract talents.

How to nail the most effective methods

Employee referrals

A successful employee referral program starts with a healthy company culture where your developers are happy. 

The way you define “great company culture” is really up to your team. The only thing that matters is that developers should feel good coming to the office and working for your company. 

Imagine your company culture like a product, if the product is great and satisfies real market needs then people will recommend it to others. This is exactly what you need to achieve with your company culture. Since no one dares to invite a friend to work for a company with a terrible culture.

What indicates if a company culture is great?

  • Number/proportion of employees referring a friend
  • Running satisfaction surveys (we know that data is important, just look at what Google did

Transforming a company culture is really difficult and takes time. It’s important to define the necessary steps by involving your team, applying a bottom-up approach since this way your team members will be more committed to the change.

Your developers are the best advocates, recommendations coming from peers and friends are the most trusted source of information.

Here is a high-level overview of how to make a referral program work:

  • Great company culture
  • Great referral rewards (anything that resonates with your employees - the best way to figure this out is by asking them)
  • Reward effort, not just results (give some kind of reward after all relevant, quality candidates)


  • Employees introduce new candidates to the company
  • The most trustworthy way to communicate company values
  • Referred employees are more engaged


  • You need employees to start a referral program
  • Your company culture needs to be great so people will be proud to talk about it
  • You should reward successful referrals and also their effort
  • Could be tricky to incentivize employees to refer someone

Professional connections (network effect)

Using the power of your network could work like magic and 12.87% of the survey participants said this is the most effective method.

It’s not only effective, but the quality of candidates is higher since no one wants to refer a bad developer to risk his own reputation.

Pro tip for getting junior developers:

We have been using this tactic for years and it helped us get 10-15 interns onboard and some of them turned into junior developers. Once you managed to get a few interns on board, ask if they friends or their friend's friend would like to join your team. Chances are they know someone who wants to sharpen her coding skills.

You can also capitalize on your own professional network. One of the simplest ways to go through your network is by using LinkedIn or your CMS. See developers in your network and shoot them a message. If they’re not open to new challenges, ask for a referral. Chances are they have a developer friend who could be a good fit.


  • An efficient way to find developers
  • Quality of the applicants is usually better


  • Takes time and effort to extend your network
  • Takes effort reaching out to connections and friends

How tech companies attract new developers?

Figuring out a way to reach talent is just the first part of the long hiring process. The next part is to make your company as attractive as possible so the candidate wants to work for you.

The State of Software Development uncovered some interesting insights.

Interesting/challenging task and team (team spirit, culture) are the top incentives to attract talent. Surprisingly, a higher salary isn’t even in the top five!

If you want to make your company more attractive to developers, try to focus on the professional challenges the job offers and make your team culture more attractive. You should also articulate your company’s potential and the cause behind the product along with the professional growth opportunities it offers.

How tech companies evaluate candidates?

The bigger the company, the longer the hiring process is. This part doesn't focus on the hiring process but rather the most important factors tech companies measure candidates against.

In general, we can say that willingness to learn, cultural fit, work experience, and tech skill evaluation tests are the most important hiring criteria, everything else is lagging behind.

It's a good opportunity to revise your existing evaluating system to better adjust to the industry trends. Kill the outdated, unnecessary elements from the evaluation and focus on the ones that actually better reflect the candidate’s ability.

Evaluating someone based on past achievements, skills could indicate a willingness to learn but still, the cultural fit remains obscure.

Cultural fit is very important, no one wants to work with a**holes, even if the new hire is brilliant it could hurt the morale and work quality.

Here is what to do instead:

When your candidate seems like a good fit for the job, don’t end the interview with a job offer (not yet). Instead, offer a paid test week or month where she can work with her future team.

This is a good way for both parties to validate the cultural fit.

Your team will get a sense of the work style of the new developer and also she will see if the company meets her expectations.

Even if the candidate has a full-time job this can be pulled off with remote tools for communicating and collaborating. The other thing you need to agree on is the time capacity for the test period and the compensation (don’t make them work for free, pay their time). For example, it can be a test week with a total of 10 hours, which means working 2 hours each day. 

How top teams keep developers motivated

Hiring someone is one thing, the next step is to make sure they stay as long as possible. A High level of fluctuation puts a huge pressure on the developer teams since they have to deal with the newcomers and also it harms the moral. It also puts a huge pressure on hiring as well.

It’s easier and less expensive to keep an existing employee than hiring a new one.

If you struggle with high fluctuation, then this is the first thing you need to fix. It’s doesn’t make sense to pour water into a leaking bucket.

The key to retain developers is to keep them motivated. But how tech companies do that?

The top two methods are challenging/engaging work and team culture. These are not only important for attracting developers but also key to retain them.

Unconventional ways to handle the hiring challenge

In some countries, the demand for software developers is insanely high. If your company operates in such a country, then hiring is even harder.

If you can’t find talent in your country then you can do two things: hire remote developers or outsource software development partly or fully.

Hiring remote workers

Cool companies such as Buffer and Invision work fully remotely, just to mention a few. In 2017, 43% of employees in USA said they spent at least some time working remotely, according to a Gallup survey. This represents a 4 percentage point increase since 2012.

Remote work is gaining momentum, more and more companies offering remote opportunities.

The good thing about remote work is that remote employees tend to work more effectively. 77% of employees who worked remotely reported greater productivity while working off-site with 30% accomplishing more in less time and 24% accomplishing more in the same amount of time. 

But reaching this efficiency requires additional coordination, administration, and clear communication.

Here is a mini case study from Invision’s team on how they successfully built an entirely distributed team with 100+ employees.

Invision’s mini case study:

Invision is a screen design tool, helping designers, product managers and anyone who is building a product to create entire product design workflows.

In their blog post, they shared the main areas that make an entirely distributed company work:

  • Communication
  • Small, connected teams
  • Making the virtual more like the physical
  • Recognition


They use Slack as a virtual office space, the center of their communication channel. If it's not Slack, any kind of team communication app is a perfect fit for this. The most important thing is that all the team communication should take place here, not partly on Messenger, Email or WhatsApp.

Without top-notch communication, remote teams are unable to work.

Small teams

Keeping the team size small gives much-needed flexibility. Here is how one of Invision’s engineer described it:

“Internally, we formed tiny groups that work on different projects. Each of them is like a small start-up; a self-contained system. For example, I am a member of the Red Team, which is made up of four Engineers (one specialized in QA), one Engineering Manager, one Product Manager, and one Designer.”

Every project team is a different entity, this minimizes the communication needed to deliver great products.

Making the virtual more like the physical

Daily stand-ups are core parts of their activity but instead of standing in an office, they have video chats using tools such as Google Hangouts or Zoom.

They also hold “demo-bits” events every Friday, which keeps each team member engaged and informed on everybody’s progress.

When it comes to sharing complex ideas it’s handy to use a whiteboard. That’s not the case in a distributed environment. But it can be replaced with live sharing tools that allow every collaborator to write and draw on images or on a blank canvas.


Praise and recognition are things that can be easily forgotten when it comes to working remotely. But it plays a significant part to keep the motivational level high.

At Invision, they use to reward and motivate each other. It could be small tips, points, claps a team member can receive as recognition.

Outsourcing work

Outsourcing work requires the same level of coordination and communication as distributed teams. Companies turn to software outsourcing mostly when a team needs temporary help to finish a project. The current team can’t handle the workload spike caused by the new project and hiring takes time.

Mini case study FINIS:

FINIS is a swimming brand, selling swimming products to anybody who is around or in the water participating in swimming. 

They have an in-house developer team, but they wanted to build a mobile app for one of their new products. This project would have put a lot of pressure on their existing team and since the project took a few months, it wouldn't make sense to scale up their web development team.

So they decided to outsource mobile app development.

When outsourcing, the crucial step is evaluating and selecting the appropriate partner. FINIS focused on three main requirements:

  • Pricing: should meet the project’s budget
  • Flexibility and timing: the ability to work back and forth that requires close and well-coordinated collaboration.
  • Credibility: companies with relevant references and successes.

Key elements that made the project successful:

Code quality is always a critical part when it comes to software outsourcing. FINIS and its outsourcing partner ensured quality by running heavy rounds of beta tests in small, frequent iterations.

Similarly to remote work, working with an external software development agency requires frequent communication and transparency,  During the project, they used TeamWork to communicate and manage the project.

During the app development, FINIS was working simultaneously on developing their new product that had to work with the new mobile app. It demanded a much higher level of coordination to make sure these products work together.

Due to the iterations and parallel product and app development, the project demanded more flexibility from the software development team and FINIS’ product development team. Without this flexibility, the project wouldn’t have been successful.


Hiring is the biggest challenge developer managers are facing.  There is no magic bullet that could easily solve this challenge but there are ways you can definitely improve your hiring process. If the tips mentioned above doesn’t really move the needle, then you can also try to experiment with hiring remote workers or if you need a temporary team scale-up, finding a software development agency.

About the Author

Tamas Torok is a marketer working with startups and tech companies. He also builds products and shares his experience on his blog.


Rate this Article