Hiring a remote developer isn’t as cut and dry as one might assume. It’s a process that if executed inefficiently can cost you and your organization time and money. If you are a manager that’s responsible for putting together a rockstar team of developers then keep reading, this article is for you.
If you are new to hiring remote developers, you probably have some concerns like:
- Where do I find good developers?
- How do I attract the right talent to my job listing?
- How can I determine whether they are a good fit?
- What qualities and skills should they have?
- How much should I pay for them?
All of these concerns will be addressed in this guide, and hopefully, by the end, you should be feeling more confident in your ability to hire the right talent for your organization.
Now let’s get started!
The Hiring Process
For most people, hiring a developer looks like this:
- Post a job listing
- Receive and review applications
- Find a CV that shines
- Interview the candidate
- Test and evaluate the candidate
- Hire them and work happily ever after
As far as the process is concerned, it’s actually okay, albeit a little simplified when it comes to hiring developers but there is a sneaky little problem here.
The problem lies in the people conducting the hiring and interviewing. Who are they? Are they technical? If they aren’t, then why are they even bothering interviewing developers.
This is common sense. If your goal is to hire a good developer, how could you possibly know what makes a good developer if you or the person who is interviewing candidates for you never have developed or worked with good developers?
If you have been fortunate enough to work closely with a software development team in the past, maybe you already have some idea as to what a good developer looks like. But this isn’t always the case, so we’ll explore some techniques for non-technical managers and business owners to conduct their interviews.
Why Hire Remote Developers?
Aside from the various research studies on remote development, there are a few benefits for both employers and employees that are worth pointing out. Let’s take a look.
- Work-life balance - The possibility to better manage time and organize daily workflow in a more productive way.
- Autonomy - Remote work allows developers to take responsibility for their work and focus on results rather than the process, which requires a high level of self-organization.
- Time efficiency - No commute and better work routines help to balance work more efficiently and optimize it in a way that increases productivity.
- Productivity - Remote employees have confirmed higher satisfaction with their work and better performance thanks to the lack of distractions.
- Cost reduction - The absence of necessity for office space, utilities, office supplies, etc. can save up to approximately $11,000 per employee per year for the company.
- Talent pool access - Companies can reach more uniques specialists with versatile backgrounds while providing a competitive salary in their region.
- Flexibility - The modern economy favors flexibility that remote work is providing, which in fact can be a competitive advantage on the market.
- Happier and healthier employees - Both factors contribute greatly to productivity that generates more revenue which is, in the end, the goal of any business.
Finally, an interesting bit of research done by Tech.co claims that if employees who could switch to working from home even half the time, could help in the following ways annually:
- $20 million in gas
- 54 million tons of greenhouse gas emissions (comparable to taking 10 million cars off the road)
- 640 million barrels of oil (at a saving of $64 billion)
- 119 billion miles of highway driving
While remote work boasts some great benefits, there are some challenges to hiring and managing remote developers that can affect both your organization and your employees. Even though the benefits outweigh the challenges, it’s important to know what obstacles can arise while putting together an effective remote software development team. Below are some challenges.
Identifying Quality Candidates
Having access to a world full of developers can easily become overwhelming once you post your job listing online. You will have an overflow of applications from just about every time zone, and you will have to sift through all of them to find candidates to shortlist.
Managing Job Postings
Managing a job posting for a position is much more time consuming because there are a lot of remote job boards. You will most likely have to create listings on 4-5 different sites, which means you will have to log into those separate sites and sift through all of the applications you receive.
If you are running your business from an English speaking country, the probability that you will come in contact with a developer that doesn’t speak fluent English is fairly high (yes, even if they say they are fluent!). That’s not to say that they aren’t talented developers, but if you are managing an English speaking team, you will need to hire members that can communicate with your team members.
Hopefully, the challenges above haven’t scared you from hiring remotely. Seriously, they shouldn’t because, in the end, the benefits outweigh the costs. The best way to mitigate dealing with the above challenges is to create a robust screening and interviewing process. Part of this is knowing what makes a good developer so that next time you come across one, you will recognize them both on paper and in action.
What Does a Good Developer Look Like?
Before we get into the process of hiring a remote developer, it’s important to understand what the ideal candidate looks like both on paper and in action.
There is no shortage of skillful and hardworking software developers ready to work remotely in the market, but the key to establishing a long-term productive relationship between a remote employer and the employee is finding the right fit. Hiring the wrong person can not only cost you time and money but do significant damage to the company and its reputation. It’s a rare worst-case scenario, but one worth avoiding.
So what does a good developer look like? Aside from identifying traditional qualities and professional experience, you should also look for soft skills directly related to remote working.
- Discipline. Remote work automatically implies a high level of self-organization and autonomy among employees. Look for software developers who are self-motivated enough to stay productive without their manager looking over their shoulder and checking their work all the time.
- Communication. The mark of a great developer is in their ability to communicate their ideas, both verbally and in writing with their team. They should also be fluent in your primary language of business.
- Initiative. Given the nature of remote working, developers that show initiative when working on a project are highly desirable. These tend to be senior-level developers who have “been there, done that.”
- Balance Remote work offers the unique benefit of allowing developers to balance their lives in ways that allows them to be more productive. While it might sound nice to hire the herculean programmer, it’s probably better to go with someone who has hobbies and interests outside of work. Burnout syndrome can impact your business negatively.
- Maturity. A good developer is mature enough to provide their manager with a safe timeline estimation regarding a task or project. Developing software is not easy, and even “simple” tasks can suffer from unexpected bugs and other delays. One of the marks of a good developer is to be safe and deliver early rather than optimistic and deliver late.
It’s easy to get caught up in assessing a developer’s technical skill, and while it’s important to ensure the developer can code his way out of a paper bag, soft skills will determine how valuable a developer is in the long term. It goes without saying that developers with poor soft skills tend don’t last very long on a team. To learn more about the other types of soft skills, check out our article on the 7 Most Valuable Soft Skills for Developers.
When it comes to resumes and cover letters, a resume should only be used to gauge whether the candidate meets certain skills, years of experience, and educational requirements. Cover letters, should a candidate submit one, can give you an idea of a candidate’s personality. A good cover letter is earnest, shows good writing ability, and is enjoyable to read.
To sum things up, a good developer will meet most of your skill requirements on paper and flex those skills during technical tests. A good developer will have strong verbal communication skills and let their soft skills shine through their past work and throughout the interviewing process.
One lesson I learned from my uncle, a professional software recruiter, was that he looked for candidates that didn’t describe their work history using phrases like “I did this, I did that,” instead he valued candidates that championed the efforts of the team.
Freelancer or Full-Time Developer?
Another big decision you will have to make is whether to hire a freelancer or full-time employee to work on your project. Whether you decide to go with one or the other primarily depends on the scope and complexity of your project. Let’s take a look at the difference between freelance and full-time developers.
A freelance developer is someone that you hire on a contractual agreement to work on a project for a short period. Freelancers sign up to marketplace sites like Upwork, Toptal, and Freelancer and qualify their skills through them. If you are looking for a freelancer, it won’t be hard to find one, but there are certain things you should be aware of when hiring a freelancer.
While freelancers charge more per hour, businesses can save money by not having to pay for benefits like health insurance, Medicare, and Social Security. You can even save more money if you hire a freelancer in a country where the cost of living is lower.
Freelancers are easy to terminate if the relationship isn’t working out and do not have the right to collect unemployment insurance or sue for harassment or discrimination.
Freelancers are responsible for their income, which means that they are incentivized to deliver excellent work to their clients. While full-time employees might have highs and lows in their time working with you, freelancers know that a contract is up for renewal and will work to keep that contract.
Freelance developers tend to balance multiple projects at once. This means that you are on their time and must respect their schedule. Depending on the nature of your project, it takes a certain amount of trust to leave it in the hands of a freelancer. Freelance marketplaces help build trust between employers and freelancers via features like rankings and testimonials.
Freelance developers do not integrate as deeply into your organization as a full-time developer would. If you already have a team of developers working full-time, freelancers might have trouble building relationships with existing team members. You can avoid this by cultivating a culture that values communication and collaboration.
Your company's success is not their priority. Freelance developers are often working on multiple projects which means there will be clients they enjoy working with more than others. Overall, their level of commitment to your vision is lower than a full-time employee. If you are looking for a developer that will emotionally invest in your product, you might want to consider hiring full-time.
In contrast to freelance developers, full-time developers have a larger stake in the company. Their salaries are, in some ways, tied to the success of the product they are building. Because full-time developers make their living working on one project, they tend to submit their resumes to companies that they believe they will enjoy working at.
Full-time developers don’t have to balance multiple projects, and they don’t get to pick favorites between clients. Your product is their main focus and how you manage the development process will determine the successes and failures of your product.
Developers that are in it for the long-haul will build deeper relationships with their coworkers and create a unique mental map of the product they are building. This organizational topology makes full-time developers extremely valuable as they become more efficient over time. The value is truly cashed in once they are able to solve problems based on their experiences working with product management and design, as well as knowing the limitations of your product's architecture.
Cost of Replacement
Replacing employees costs money. Studies show that at a median salary of $45,000, replacing an employee will cost around $15,000. Also, when an employee works full-time, they create mental maps about your business that allow them to become more efficient over the course of their employment. This is a cost that can be felt once they leave but it is harder to quantify.
Cost of Training
When you bring on a developer to work on an existing project, they will need to be onboarded and given some time to learn the tools that your organization uses, the work methodologies your team adheres to, and immerse themselves into the codebase. The time spent doing these things costs you real money.
Chances are if you have experience hiring employees, then you’ve hired someone who turned out not to be the right fit culturally. Thankfully, you can incorporate team meet and greets into your interviewing process to make sure that your team members approve. While this isn’t a foolproof solution, it’s an inclusive one.
Which One Is Right for You?
Well, the answer is that it depends on what you are looking for. If you are a very early startup looking for a developer to build an MVP, then maybe it’s best to find a developer. If you have an existing codebase then a full-time developer will be better in the long-term. Freelancers simply do not offer the level of investment you need at that point.
Unfortunately, things aren’t as black and white, and you might not have the resources to go about building a remote team. You might want the benefits of a freelancer and full-time employee without the drawbacks. We also have an article on alternatives to hiring full-time software developers, which you can read.
Now that we have an idea about what the ideal developer looks like, as well as the differences between freelancers and full-time developers, you might be wondering where to find developers. If you’re internet-savvy, then you might already know some of the sites. But for those who don’t know, no worries.
Finding Remote Developers
Depending on the type of project, companies will leverage one or more channels, such as remote job boards and freelance marketplaces to attract talent. These channels have their pros and cons, so it is up to you to decide which ones to use. Let’s look at each one in more detail.
Freelance marketplaces are often associated with project-based jobs rather than regular employment, but that doesn’t mean that you can’t find a remote developer interested in working long-term. You most certainly can; however, it would be an inefficient way to find candidates compared to some other methods.
Some well-known sites that connect businesses to freelancers are UpWork, Toptal, Gun.io, and Codeable.
The best place to find remote candidates are job boards. You’ve probably heard of global job boards such as Indeed, Monster, and LinkedIn Jobs, but there are plenty of smaller ones that are popular within the development community.
Below are the ones that we know to have high amounts of site traffic, which means more candidates for you.
Monthly Site Traffic
Indeed --- 119M
LinkedIn Jobs ---- 8.7M
FlexJobs ---- 943K
Remote.co --- 136K
We Work Remotely --- 106K
Remoteok.io ---- 35K
Quick note: make sure when you create a job posting on global job boards that you explicitly state that the position is remote.
To learn more about how software engineers are looking for remote jobs and next opportunities check out our post “Where To Find Remote Software Engineering Jobs?”.
Creating a Job Listing
The hiring process starts with creating a job posting. Your job posting will set the tone for the entire journey of finding a remote developer, so please, don’t take this section lightly. If you want to attract the best, you will need to make your company look as attractive as possible.
Look no further than some of the well-written job listings on sites like We Work Remotely. Piecing together a well-written job description is not rocket science, but we have some ideas to get you started. Let’s break down the anatomy of a job posting and understand how we can help potential candidates screen themselves before submitting them.
Job titles should be clear and communicate the roll as it is. No need to add fluffy words like “rockstar” or “ninja.” Instead, opt for more professional and descriptive titles such as “iOS Engineer” or “React Developer.”
Job descriptions should provide detailed information on what your expectations are, what are the specific high-level tasks the position entails, what you’re offering in terms of salary and benefits, and why candidates should be excited to join your team. You can use narrative style paragraphs to draw candidates in or use bullet-pointed lists. We suggest a mix a both.
When you write a job description, divide all of the responsibilities into succinct bullet points. The more specifications you are able to provide, the better candidates will be able to understand your expectations and their potential duties in the remote team. It will also give them a chance to screen themselves out of applying, which means time saved for you.
Once you have your job posting out there in the wild, it’s time to sit back and wait for the applications to come in.
Choosing the Right Candidate(s)
So you’ve posted your job listing, applications are flowing in, and you are now realizing that you have your hands full. Believe me, these are good problems to have. Even so, you might be wondering how do you choose the best candidate?
Sifting through resumes can be overwhelming but the most important thing to realize and accept is that hiring developers takes time. In fact, it’s better that you take your time, regardless of your company roadmap. That might sound counterintuitive, but don’t forget the point of hiring is to find the right developer, not just any developer. Rushing the process will most certainly cause you problems later on.
To start, we first filter out resumes that don’t match our criteria at all. There are a couple of “red flags” that can be easily spotted. This will save you a lot of time, so let’s dive in.
Red Flag #1: They didn’t read the job description
This one is quite common. Some developers will blast their resume in hopes of landing an interview. Often this comes at the expense of not paying attention to the job listing. As a result, their resume sits out of place and you can assume they don’t care enough about your project. These applicants aren’t worth your time.
Thing’s that scream “do not hire” are:
- Skills don’t match (you need a Python developer but they are Java dominant)
- Years of experience don’t match (you need someone with 5-7 years but they have 1-3)
- They live in a time-zone that’s incompatible with yours
Red Flag #2: Their cover letter sounds generic and/or uninspired
Just these filtering criteria alone can help you weed out many of the applicants that you will receive.
Selecting the top 5 candidates
At this point, you should have enough resumes to pick a top 5 from. You can even be a little more strict and go for a top 3, but at Trio we tend to go with five because the interview process will most likely leave us with only one.
Selecting your top 5 is very straight forward. If you have requested your developers to write amazing cover letters than you should base your decisions on the passion, quality, and clarity of their writing.
Quick Tip: To make evaluating cover letter easier, make sure to tell applicants reading your job listing to keep it sharp and short, as well as outline what topics you expect them to touch upon in their cover letter. Some important topics are:
- Introduce themselves
- What they do
- Describe their role in your companies future
- Describe what they are looking for in return
Writing is an extremely valuable skill regardless of what position they are working on. If a candidate is capable of writing a cover letter that is clear and concise, it shows that they are able to communicate well. Always opt for the better writer.
Once you have filtered and selected the top 5 candidates that have the necessary requirements on paper from your pool of applicants, it is time to interview them. Interviewing remotely is slightly different than interviewing local applicants because you will not have the benefit of meeting them in person. Instead, you will have to leverage a number of different tools to make your life easier. More importantly, you will have to develop an interviewing process that helps you determine whether or not the candidate is a good fit.
Below are a few methods we use to qualify candidates. At Trio, our interviewing is constantly evolving. You should take great care in developing a process that doesn’t overwhelm you as you will be interviewing more than one candidate. Interviewing developers takes time and can be exhausting, so it’s best to be as organized and methodical as possible.
You don’t want to waste time interviewing or hiring the wrong people. That’s why every remote developer candidate that you are interviewing should go through a coding challenge. This is a great way to see if the candidate can write code. You will learn how they approach and solve problems. Give them a small task (30-60 minutes), and you will get a pretty clear idea about how they write, structure, and document their code, as well as how they test and implement it.
3-5 Minute video presentation
Video presentations are becoming a popular addition to the interviewing process. In a short period, you are able to see what you can expect from the candidate - their communication skills, personality, enthusiasm, as well as the candidate's command over technology.
Technical interviews allow you to go deeper and learn about the candidate’s specific skills and professional knowledge. Technical interviews consist of a set of questions that are specific to the role and seniority you are hiring for and verify that they can walk the walk.
Apart from checking a candidate’s expertise, a technical interview is a good opportunity to learn about the projects that they have done before and are proud of as well as how they have handled difficult situations in the past, how would they handle a certain type of a project or a situation, etc. Find out about their career and growth expectations, what drives them and what they are looking for to achieve in the new position. Don’t forget that communication goes both ways. Do what you can to make the developer open up and be comfortable with you.
Pair programming is an agile practice that allows two programmers to work together on a small project or feature. There are two distinct roles - the driver and the navigator. The driver is the person who is writing the code, while the navigator guides how the code should be written.
In a pair programming interview, the interviewer is the navigator, and the candidate is the driver. This is as much a test of technical skills as well as communication. Pair programming shows a candidate’s ability to collaborate with other team members.
Before we send you off into the wild. We want to share with you some tools that we use in our interviewing process.
For video presentations - https://zoom.us/
For code challenges - https://www.hackerrank.com/
If you decide to hire a remote developer you need to be ready to go through all the troubles of the hiring process - hundreds of unsuitable applications flooding your inbox, unsolicited emails and messages on Linkedin, hours of interviewing and testing, exhausting salary and benefits negotiations, complicated onboarding process, etc. Seriously, it can get hectic.
If you are looking to save yourself from all the trouble of building a remote team, check out our article on the alternatives to hiring full-time developers.