When you have a project at hand, finding all the right people fast is crucial – but may also be excruciatingly difficult. That is, if you look no further than the local talent pool and are (for some reason) bound to the vision of all those professionals sitting together in one room. Looking for tech talent is a challenge for 86% recruiters, as shown in a recent survey – so naturally, the popular option is hiring for remote software development jobs – or going for outsource.
The reality is that at some point, almost everyone in software development encounters the need for remote programmers. Shortly before the COVID-19, about 56% IT companies allowed for remote work at least for some specialists, and the tendency is (of course) growing now. Here is an updated guide for startups and enterprises covering the hiring process for remote developers in 2020, based on our experience and cases.
Why do you actually need remote developers?
The practice of hiring remote software developers and other IT professionals overtook the business world gradually but steadily. Why? Ask 10 different executives and you may get 10 different answers. In essence, remote work in IT is just a way to get at whatever your business needs while sidestepping the local limitations.
First of all, there is the possibility to finally “catch” the talents that one would otherwise have to grow in-house at the cost of unreasonable effort. In some areas or countries, certain specialties and skills are a sought-after prize, while a different location’s talent pool offers plentiful resources.
Of course, there is also the cost-efficiency factor. Many a business has achieved miraculous ROI by finding the optimal quality/salary ratio. It is, after all, not a secret that different locations have different price ranges for everything, from an espresso to an hour of a Ruby developer’s time.
Other considerations that lead to hire remote coders or even whole remote teams may go as follows:
- Why do I need to think about office and equipment, down to filling the coffee machine (and hiring a guy to do that)?
- Our competitors are in this area, and if I don’t raise salaries all the time, employees will migrate like a flock of birds.
- There are too many regulatory hurdles with hiring people in my country/state/region/province.
- Why on Earth would that development team even need to interact with anyone else in our office? 90% of our employees are not involved in development per se!
By now, remote software development is a firmly entrenched practice. As with any phenomenon in the world, there are both skeptics and enthusiasts. While companies like Yahoo ban remote work outright, other ones, like Buffer and GitLab go fully remote, and of course there are variants in between. Meanwhile, according to the 2019 Stack Overflow Developer Survey, 45% out of about 89,000 respondents work remotely at least part of the time, and 10% do so full-time.
This is why the software development world adapted to the COVID-19 situation so rapidly: the skills and instruments were already in place for so many. After March 2020, when about 88% companies mandated remote work as part of the social distancing measures, more and more specialists and managers are becoming experienced in remote, so this is very much likely to become not a normal thing, but the norm itself for many.
Hiring remote developers: advantages and disadvantages
So why does this practice benefit employers so unevenly and why are there still so many disputes? As practice shows, both advocates and opponents cite more or less the same reasons that can be summarized and classified – with benefits on the one hand and challenges on the other.
- You get a wider pool of candidates to choose from. You are not limited to those living in your area, or willing to relocate (meaning, most likely they at least live in your country or state). There is the possibility to lay your hands on simply the best person for the job, with fewer compromises. This is relevant practically everywhere: in U.S., for example, around 223,054 job openings were demonstrated to be unfilled – and the demand for developers exceeded the supply in all regions.
- Cost-efficiency. As mentioned above, different countries and areas have different salary ranges – for example, while the average front end developer salary in U.S., according to Glassdoor, is about $76,929 per year, in India it is near $7K, with Eastern Europe ranging somewhere in between. However, the “average rates” you find online can be inaccurate, since the surveys they are based on do not always comrise enough respondents with different qualification levels. However, there is another curious factor, and that is the distribution between specialties: for example, in Western Europe, Android developers charge more than front end developers, while in places like Poland and Ukraine the trend is reversed – simply because in some places, more people are competent in technology A, and in other locations, technology B.
- You pay for the work done. Remote work, when practiced properly, is a great way to build up the cynically pragmatic attitude to getting the job done. This explains the data on productivity: 35-40% more efficiency was reported in just one survey. Of course, not everyone can function this way, but those who can are truly priceless (typically those with experience of remote work) – responsible, deadline-observing, and result-oriented.
- Flexibility. Since there is no typical 9 to 5 presence in the office, remote developers are more open to variation in the working schedule, as well as the level of involvement. In many cases, organizations go for this option when there’s some flexibility needed – e.g. the job could be done part-time (so commuting to the office is less sensible), or at odd hours, or maybe just whenever need arises.
- Lack of immediate control. There are and will be people who just cannot work from home, getting distracted or thinking it’s okay to go for a walk while the rest of the team try to contact them in vain. Thankfully, these people do not tend to like remote work themselves – or do not work like that for a long time. A more real challenge has to do with freelancers who, despite all their self-discipline, are often tempted to work on several projects simultaneously.
- Tricky recruiting and onboarding. Finding and recruiting talent for remote work is an art that not all HR managers have. There are ways to check the candidate’s skills and competencies remotely, but a further challenge is getting the remote employee fit in the team and providing good onboarding – this takes some extra problem solving.
- Time zones and cultures. This is a problem sometimes encountered when hiring a person from a different country. Time zone difference can also be a blessing, though – e.g. when you can split the work in parts so that one part of the team takes what the other has done (and gone to sleep) and works further on. Cultural differences and language issues also arise sometimes – not everyone’s English is good enough, and in some cases, managers have to learn about other countries’ national holidays.
- Communicating. Many of us prefer in-office work exactly because you can ask a quick question or confirm something from a colleague while simultaneously typing on your keyboard (and similar situations). Needless to say, this is not an option with remote work, and instant messaging does not always mean the reply will be as instant. This is typically solved with clear requirements right from the start (“you should be constantly available from … until …”) and a good teamwide (or companywide) communication platform.
The 2 principal ways to find remote software developers
So at one point you decide that you really need remote developers and benefits are clearly worth solving the challenges. Where to look for the people you need? There are essentially two ways to arrive at the team of your dream (or that one elusive specialist): (a) you make the search in the DIY style and count on your own effort; (b) you delegate the search to professionals in a provider company.
The first of these (the do-it-yourself one) means either posting offers to job boards (in which case your post should do all the work for you, attracting the right people and repelling the wrong candidates) – or taking a more proactive stance and “wrestling” candidates from competing companies, engaging your current employees with a “bring a friend” policy, etc.
The second approach is having everything but the final interview done on a turnkey basis (often including team management) and is suitable for longer-term collaborations.
Let’s look at the two approaches in some more detail and add in some points that only become apparent with experience.
Search by yourself
Most employers who have practiced either job board posting or proactive search agree on more or less the same advantages and disadvantages:
Bottom line: this method works well when (a) there is no time pressure, (b) no budget is allocated for searching, (c) you have a least the general idea of where to search (e.g. your professional network on LinkedIn, job board that you know to be popular in the community of target professionals).
Delegating search to professionals
As with the previous option, there are ups and downs here. In general, recruiters and business stakeholders point out the following:
Bottom line: this method is perfect in situations when (a) you need to find a team reasonably fast, (b) the project in question is relatively long-term and not an episodic one-time involvement, (c) you want more than just one person.
What do you need to know before starting search?
Several things are inherently true about working with remote developers and should be kept in mind from the very start. Drawing on the experience of (by now) generations of managers, one could write volumes about this. These insights can be roughly grouped into three categories: management, the costs question, and best practices in hiring.
How to manage a remote team
Needless to say, managing a software development team that works remotely is somewhat different from the traditional in-office model. Here are just some of the insights worth mentioning:
a) Organize communication in a clear way.
Spontaneous, ad-hoc meetings are sometimes inevitable, but should really be minimized. Especially when working in different time zones, scheduling meetings is very helpful – being sure that people are available and in contact exactly at a prespecified time provides confidence.
b) Adjust working hours to let people work when they are productive.
Not all people are at the top of productivity at the same time of the day; chances are, best outcomes are achieved when some part of the team works, say, 6 hours from 8 a.m. to 2 p.m., and another part overlaps with the previous one – or any other such model. Great results have been demonstrated by managers who became virtuosos in organizing work in such a way. Unless you have grave reasons to need full-time work (and specify that in the job offer), being flexible opens opportunities.
c) Do not assume onboarding is not needed.
Everyone wants a professional who knows everything from the start; such professionals, though, need onboarding, too. Besides the knowledge of programming, technology and so on, there always are project peculiarities that require explanation – and also collaboration issues. The exact way you provide onboarding for remote developers, of course, depends on how many there are, what the project is, and other factors.
d) Prepare tasks as if you never wanted to provide any additional explanations.
Of course, you will still be able to correct and provide further guidance to the team; you keep in touch. But with remote development, the tendency is always that if something was missed from the initial SoW, it is later explained personally in chats or over the phone/email – and not documented. You will hardly want to tell the same thing to 4-5 people again and again, so better to give all the information at the very beginning – maybe with visual cues – and elicit confirmation that everyone is on the same page from the very start.
e) Select proper tools
There are three main categories of tools and platforms that may help you facilitate collaboration in a remote team: project management tools, document sharing, and communication (as well as some all-in-one solutions and additional tools).
For managing tasks, you can use Atlassian Jira, Trello, Monday.com; document sharing can be done with TipHive, Google Drive or Microsoft Sharepoint; for communication, the most popular options are currently Slack, MS Teams and Skype.
f) Time trackers are best used in a different way than usually thought
Time-tracking tools that record the developer’s activity (log in, start task, stop task, typing, screenshots of active windows) were originally conceived as a means of letting extra anxious managers be sure no one accidentally opens Facebook and gets paid for that. However, as practice shows, calculating time and clicks is dangerous – it encourages some developers to write code so that the system is satisfied – with more lines, less quality, less thinking put into it. In reality, savvy managers actually do use time trackers, but only to estimate at what speed the remote developers work and how to plan for deadlines.
How much do remote developers cost
While there is no single “magical” average number when it comes to remote developers (the cost depends on too many factors, including technologies involved, hours, deadlines, project itself, country, and so on), the final costs are most often lower for remote development than for a similar situation with office work. There are two major sources of economy that push down the costs:
- Accommodation / office + collateral costs like coffee machines
- The developers’ rate in their city/area/country
It is only now, with remote work rising, that maintaining an office is being recognized for the luxury it is in many places. The savings become most directly obvious in companies that employ workers on a purely remote model (everyone works from home) – according to recent calculations, businesses save on average $10,000 per person per year in this way. A less conspicuous example is when you hire a remote team that nevertheless works in one office somewhere in a different location (offshoring). While the service provider does pay the rent and maintain the office, such organizations logically arise in places more favorable for affording an office than average, so that the overall cost for you as the customer is likely still lower than organizing the whole thing in your city.
The country factor is even more widely recognized. As mentioned previously, different countries economically operate on different scales, hence the difference in developers’ rates that benefits many a business. As an example, here is the comparison for just several most widely sought professions based on PayScale data as of May 2020:
|Full-stack developer||$78,534||$43,243||$33,694||$20,424||$7,941||$30,853||$ 51,846|
On the one hand, most employers recognize by now that the super low rates may indicate coders with little experience or motivation (“coding for food”) – however, this is not always the case. As many note, you can find good developers charging less than those in your area, and lazy ones who turn out to be expensive – this boils down to finding the right people. This is why many savvy employers now turn to the “middle-of-the-road” options in terms of costs – typically Eastern European countries like Lithuania, Ukraine, or Romania: the tech education in the region is strong while the scale of prices is lower than in the Western countries.
The price difference is not all about the general economy levels, though – it also has to do with the market situation in a particular area, and ultimately with many other factors. For example, here are the average rates for 4 separate randomly selected job titles in Czech Republic (based on Payscale):
While in Czech Republic, .NET developers cost more than those coding in PHP, in Ukraine the situation is reversed. There are a lot of such cases and the reasons can be tracked down to things like universities teaching a large amount of graduates the same technology, making the supply and demand logic work on the market. Of course, market saturation is not the only factor – before anything else, the general pricing scale depends on the technology itself, its complexity and relevance for present-day projects. The differences between different locations are often noticeable, though.
Some hiring tips
Those who go through the recruitment process, selecting remote developers (and other professionals) for collaboration often encounter the same issues:
- you need to somehow double-check the candidate’s competencies in the remote mode (CV is never enough, let alone in this situation)
- the qualities a person needs to work in a remote team are specific to this virtual setting: being self-motivated, extremely responsible, good communicator, having initiative, etc. How to make sure your position has attracted the right people?
Talking about this latter point, it’s never a good idea to underestimate the soft skills – and with a virtual team where building the right atmosphere is trickier, they are vital. No two organizations are the same, but the most frequently cited essential qualities according to research are as follows:
Here are some of the general best practices to ensure the criteria are met while hiring:
- Ask about experience in a similar role or project – not just about formal qualifications. Buffer – a company famous for endorsing the remote work approach – has made a point of this: “We look mainly for relevant experience to the particular role someone is applying […] and then ask candidates to share any relevant links to projects, personal websites, Github, etc.” In this way, you can be sure about what the person will bring to the project.
- Be specific about the skills and qualities you need. A common mistake is for the employer to get vertigo because of all opportunities and look for a perfect “unicorn” employee combining all that is good. However, overwhelming the candidates with the “nice-to-haves” will attract the wrong people. Instead, give a clear understanding of what you expect and be demanding about these clearly defined points. This has been aptly called “intimidating in the right areas”.
- In the offer, focus on something different than perks and fun. Of course, when posting to a busy job board, everyone wants to “sell” their job offer, making it essentially an ad speculating on the side benefits and perks, or compensation. To be honest, though, it is difficult to compete on these fronts. Instead, lay emphasis on what is interesting in the project itself, and on the level of flexibility and freedom that comes with remote work. In this way, you will attract the motivated, self-governing people. At least two companies, Zapier and Groove, have successfully employed these tactics.
- See the candidates do a bit of actual work before hiring. This can be done in various ways, not necessarily test tasks. While Buffer has entire bootcamps for that purpose, other options may include incorporating a “hidden” test task into the job offer itself or getting creative, posting a question as if asking for help on a forum and then targeting those who do provide correct answers.
How to hire remote developers: DIY approach
As already mentioned above, there are two main ways to find and hire remote software developers: either you do everything yourself, from job posting to filtering out candidates to interview and onboarding – or delegate it to a specialized team. Let’s focus a bit more on this first option, as it clearly involves more effort and know-how.
The best way to start is by defining your goals and expectations as precisely as you can. With remote work vacancies, so many candidates are initially available that filtering them out starts even before you post the job. A good variant of doing so is creating a so-called “score card” – a list of competencies with your own grading as to how strong you expect them to be. Then you can focus on addressing the potential candidates.
Regardless of whether you just post on a board or actively approach people via your (or your current employees’) network of contacts, you will still need the job description documented somewhere. A good practice is to make it shareable – as a LinkedIn post, for example.
Once you have a reasonable number of candidates to start looking at, it is time for the interview stage. The widely accepted practice is to hold at least three interviews before hiring a person:
- Initial interview – to see how well the person would fit in organizationally
- Technical interview – to test for the technical skills and competencies
- Final interview – to negotiate on the details of collaboration
You really don’t want a large crowd of candidates for an initial interview. Not only is it time- and effort-consuming but can dangerously lead even the best recruiter to confusing people and getting distracted from important points. Experienced remote employers recommend making sure that about 5 people from the initial pool make it to the first interview on Skype, Hangouts or whatever.
To narrow down this circle, look at the previous communication – and have previous communication via messaging if necessary. Did the person read your job description attentively? Did their answers involve anything about your project – or did the candidate just focus on how awesome they are? Let those pass who are interested in the job itself, ask questions and can say confidently what they can contribute. Also, consider the communication skills at this stage. Between two otherwise similar candidates, the better writer is the better choice.
The initial interview itself should not be too long – about ½ hour is the optimal duration. It allows to:
- Tell the candidate more about the project (and see if they ask reasonable questions. If they don’t, they likely won’t care all that much about the work itself, so a minus here)
- Let the candidate mention their previous experience with similar projects. This will allow to check that (a) they understand what they will be working on, (b) they are not embellishing their experience.
Technical details should be reserved for the technical interview – but let the candidate mention them if they feel like it. In general, this initial video call is to check the more general issues.
Where to look:
- prior experience (incl. prior experience working remotely)
- cultural & value fit
- communication skills
- ability to work remotely (responsibility)
- involvement (how interested are they in the project?)
- proactive approach
- ability to prioritize
The technical interview is meant to assess the practical skills and what the candidate will contribute to the project. This ideally involves some sort of testing, either done in a question format with close involvement of the senior team members – or a practical assignment, literally a task to perform.
Either way, the technical interview/exam should not be too lengthy or include a huge task with a deliverable that has market value of its own. Firstly, this is really unnecessary – to understand how well a would-be employee operates, a shorter task is sufficient, if it covers your expectations reasonably well. Secondly, in many countries with recent freelance traditions, there is a practice when unscrupulous employers make candidates do work for free as “test assignments”, never hiring anyone – and if too many candidates suspect this is the case, they may shun future job postings. Typically, the technical interview lasts about 2-4 hours.
Another important consideration is what the candidate will offer to benefit the project – not just “because they can”. After all, you work for results, not for boasting what technologies the programmers in your team have.
Finally, a candidate who does not know some non-essential issues but can collaborate remotely to solve a problem is better than one who seems to know everything but does not work together with the rest. Remote work is largely about being able to communicate at a distance.
Final interview and job offer
The last interview before you hire a remote developer is about the details of the collaboration: working hours, salary, paydays, supervision, contact times, deliverables, means of communication, etc. Ideally, the most crucial of these should be already present in the initial job posting at the very first stage. In this way, the situation is avoided when an otherwise ideal candidate (who has also taken up your time on interviews) suddenly discovers conditions that are unacceptable for them – and refuses to accept the offer. Rather, this last conversation before decision taking is to refine and clarify, to arrive at the optimal model of collaboration. For example, if the initial job description stated that the employee should be available for a virtual meeting daily at 1:00 pm Eastern Time, but the working hours were not indicated, this is the time to discuss when the developer will be actually working, and so on.
How to delegate the search to professionals
While searching for remote developers by yourself will require time and effort, addressing professionals specializing in this area is a good alternative, especially if you want more than just one person. The entire process is much faster and essentially consists of 2 stages, not counting the final interview which you may hold at your discretion (many don’t).
Define your goals
As with the DIY approach, everything should start with clarifying what it is that you are looking for. It is not as important to create score cards and list personal qualities and soft skills, though – hiring professionals at outsource provider companies already choose from their own pools, and the candidates they look at are those who really can work remotely.
Instead, be precise about the technical skills and what the project is like. Divide the list of requirements into the obligatory and nice-to-have sublists. Provide a description of what you want the people to work on and how you see the communication model.
Also, since respectable provider companies have the option to provide remote teams that work in one office (this, remote to the customer, not remote to each other), consider this paradigm, as well. Of course, with the coronavirus situation in 2020, it depends on the region whether such organization is possible. Generally, though, this combines the benefits of both remote and in-office work and can be beneficial.
Find a professional outstaffing company
Finding a good remote/outsource software development company is a matter of selection, not search, considering how many there are. To facilitate your search, look at the following criteria:
- what developers they offer (skills, technologies)
- what industries they typically serve
- where the company is located (and where most programmers reside)
- references and feedback from previous customers
- the questions they ask you from the start
- whether the time they will take to find your perfect team is realistic considering your requirements
Usually, with companies that already have their own talent pool that corresponds to your professional area, the search does not take too long – several days to 2 weeks, depending on the project. Of course, you may choose your own level of involvement from the start and have a final interview of your own with the candidates.
Remote software development is becoming the new norm as the technologies and business practices that make it possible get more and more elaborated. While some miss out on the opportunities that it provides, many companies now enjoy a wider choice of professional developers and other specialists – and as the differentiation between IT specialties grows, we will most likely see the surge in remote work continue. Good news is that the possibilities are open already – and addressing professional providers will spare you the effort and time, while you concentrate on making your business flourish.