Tracy Phillips

Tracy Phillips

CodeSubmit Team

How to Hire Remote Developers [Updated for 2023]

RemoteRecruitingHiring

How do you hire remote developers?

If you want to hire talented remote developers, then you need to have an effective remote hiring process in place. That’s what we’ll look at today.

You’ll learn:

  • Where to find remote developers
  • How to set up a successful hiring process
  • How to identify the right talent
  • Templates and scripts to use
  • ...and much more!

Ready to learn more? Let's get started!

Benefits of hiring remote developers

While my co-founder and I have years of technical hiring experience, now that we’re running our own business remotely, we’ve discovered that there are a lot of benefits with a remote team. Some are obvious, and some aren’t.

Let’s look at just a few of them:

  • Productivity. Research shows that people are more productive and better at prioritizing work when they work from home, thanks in large part to spurts of uninterrupted deep work.
  • Cost savings. A remote team helps you save on recurring costs like that expensive office. A PwC report shows that if companies in the Netherlands would make just one day a remote working day, the net benefit would be €3.9 billion annually, mainly due to cost savings. If fewer team members are commuting to work, you also reduce your team’s CO2 emissions (which is cool, since an increasing number of workers care about their company’s carbon footprint!)
  • Access to talent. When you hire remotely, you have access to a lot more talent than you would sourcing developers locally. This is a gigantic advantage in today’s world where top tech talent is scarce but can come from anywhere.
  • Flexibility. Remote teams can provide some working flexibility, especially if your team works with freelancers and consultants. This working flexibility provides some wiggle room for teams that are uncertain if a full-time employee in a specific role is absolutely necessary.
  • Work-life balance. For remote workers, the flexibility they gain in their day-to-day can have a huge impact on their work-life balance. Working remotely means folks can spend those commuting hours on something more rewarding, and a more flexible schedule throughout the day allows working parents to fit in family life.
  • Autonomy. Finally, remote work increases autonomy. And as research shows, autonomy in the workplace improves employee wellbeing and job satisfaction.

These are just a few reasons for why we’re big fans of remote work, and the benefits stack and compound in many ways, especially when it comes to technical talent. Developers are notoriously hard to hire. 80% of technical hiring managers say there’s a lack of talent. At the same time, most technical jobs can be done just as well at home (or in a coffee shop), as they are on-site. Remote-first teams can hire from anywhere with so many advantages over those bound to the office.

That’s why hiring remote developers is a great option for both big and small companies.

man sits at computer

Early hires: finding your first developers

If you’re building a team at a newer business, how do you know when it’s time to hire developers?

Hire too early and you risk ending up with major costs that eat up your revenue.

But hire too late and you might find yourself hiring the first person who seems okay, just because you’re in such dire need of help.

There’s no hard and fast rule for knowing when you should hire. But one thing is clear: Be sure to have a hiring process in place and define exactly what your new hire will be working on.

You might even start with outsourcing the first tasks to freelancing developers until you’re ready to hire full-time employees.

Where to find remote developers

But how do you find developers, if you’re hiring them remotely?

The first option is to reach out to your network. One of the best ways to source candidates is to ask your existing team for referrals.

If you’ve already exhausted this option, another great way to find remote developers is to search for them on online platforms and job boards. There are a ton of these nowadays!

Some of them include:

Platforms like Toptal differentiate themselves by vetting their talent--that makes them the “safer” but also more expensive option. Other platforms, such as Upwork, are full of great talent, but you’ll have to vet them yourself.

If you’re looking for a team of remote developers, you might check for “agencies” on Upwork or do a Google search to see what’s out there.

Identifying the right talent for your dev team

The type of talent to look out for depends on your team’s needs. But when your team is remote, the people you hire should be folks who want to work remotely (and are good at it). Soft skills like communication also become extra important here.

In terms of the salary range for your new hire, this completely depends on the seniority level, skills, where they’re located, and if they’re employees or contractors. One fallacy is that remote workers are cheaper. Key in mind that you often get what you pay for!

As an example of what to expect when it comes to compensation, ZipRecruiter reports that the average annual pay for a remote developer based in the United States is $121,262/year or $58.30/hour.

ArcDev reports that the global average is $70,877 USD/year; however, there’s a lot of variation depending on location. According to ArcDev, the average salary for remote developers in North America (US, Canada, and Mexico) is $82,757 (but $96,999 in the US on its own). The salary for senior developers in North America is $112,779 ($159,444 in the US).

The numbers are even more varied when you take a look at Western Europe versus Eastern Europe, or include devs from other parts of the world. Keep in mind that a truly phenomenal dev can come from literally any corner of the earth nowadays, and you should expect to pay them accordingly.

Finally, when you choose between hiring someone as an employee or a freelancer, consider this:

  • An employee will likely be more loyal to your company, and you don’t risk ending up in a situation where you quickly have to find a new developer. On the other hand, you can create an agreement with your freelancer that states the notice time they are required to give you should they decide to move on to other projects.
  • A freelancer is more flexible, and while freelance contractors tend to ask for a higher rate than employees, they come with lower costs (no benefits, health care, or employment taxes). If your needs vary or you want to keep things flexible, a freelancer might be the right way to go.
  • Both employees and freelancers come with their fair share of administrative and managerial work. If you’re outsourcing to a freelancer, it doesn't mean that you won’t need to give them direction or work together to achieve your goals.

Once you know what type of candidate you’re looking for and where to look, it’s time to set up a remote hiring process. That’s what we’ll look at next.

How to set up an effective remote hiring process

Without a great strategy for hiring, it’s hard (if not impossible) to find the right talent. After all, if you don’t have the same hiring process for every candidate, how will you know that one developer is better than the other? Ambiguity can lead to a bad hire.

Tim Corey, who teaches software development, explains:

“The best way to have a great hiring process is to keep it as close to reality as possible. That means honestly evaluating what the position entails and then communicating that to the applicant. The closer the expectations of the incoming employee are to reality, the happier that employee will be.”
tim corey

In this chapter, we’ll look at what it takes to create this process.

1. Write great job descriptions

Your first step is to write a job description that attracts the right people.

As Peter Thaleikis, remote software engineer at Bring Your Own Ideas, puts it:

“Setting the right expectations from the first contact via your job ad is key. Is the role only available to people in a certain country or timezone? Are we looking to hire a contractor or employee? This removes common disappointments during the hiring process.

Ideally, you also want to outline the process step by step. If a coding test and interview with the team are planned as part of the hiring process, include this. It also pays to mention your tech stack and project management approach in detail, this helps you to get only applications from people who consider it a fit.”
peter thaleikis, software engineer

Here are some things you should take into consideration:

Requirements

Start by defining what it is you need. What languages, frameworks, and other tech skills should the developer know? What seniority and experience level is required?

That said, don’t get too specific. LinkedIn is full of horror stories of job descriptions that require developers to have ten years of experience in a language that’s only been around for the past five years.

Also, if your requirements are too strict, you might be excluding some applicants. Studies and surveys show that women interpret job qualifications in job descriptions as real requirements, rather than guidelines. Unless they fulfill those qualifications to a T, they won’t apply.

And in the worst case, you might end up doing just what Google did here...

https://twitter.com/mxcl/status/608682016205344768

(A bit of context: Max Howell has himself said that he regrets writing this tweet, but more because of the wording than the content.)

Description

When writing your description, keep things clear and honest. If you make the position sound like something it isn’t, you’ll end up with an outsize employee turnover rate.

And think about the language you use -- your language will appeal or repel groups of people.

For example, research shows that words like “leader”, “dominant”, and “competitive” are less appealing to women than to men. And maybe avoid terms like “ninja” and “rockstar” while you’re at it too.

Your offer

Finally, consider what you have to offer your candidates. Research shows that purpose-driven organizations impact employees’ sense of meaningfulness at work. Remember that the most talented developers have plenty of options when it comes to choosing their employer. The same goes for a remote team.

Show them why they should choose you. What’s your company’s mission? What’s special about your team? How do you support your employees’ growth?

Here’s a simple job description template you can use (it works for both employees and freelance developers):

Company introduction

[Write a bit about your company and show what your values, culture, perks, and benefits are like. Mention anything that you think makes your company stand out, such as your amazing mission, focus on growth, and more.]

Job description

[Clearly and transparently describe what the job is all about.]

We are looking for a Web Developer to... You will be responsible for… You will also...

Web developer responsibilities

[List the responsibilities, such as “Translation of UI/UX wireframes to actual code.” Hit the high points; focus on the most important things the dev will be doing day-to-day.]

  • Responsibility 1
  • Responsibility 2
  • Responsibility 3

Skills and qualifications

  • Include skill and qualification requirements, such as the language a developer should be proficient in and other language/framework/technical skills they need depending on your existing tech stack.
  • List the required educational level and certifications; if it's flexible, you can mention that it’s “nice to have” or leave these out altogether.

2. Select your candidates

Now it’s time to select the candidates you want to move forward with.

But how do you identify those candidates?

Online research

We recommend that you start by doing a quick online search.

LinkedIn is a good place to start.

Or, if you’re using a platform like Toptal or Upwork, those user profiles will already include a lot of information. For example, Upwork includes a rating and reviews. This gives you an idea of how others have assessed that developer’s work results. If you’re lucky, there might be some more in-depth feedback in the testimonials section.

You can also check developers’ programmer portfolios (e.g. their personal websites), which often include any open-source projects they’ve been working on, their GitHub or StackOverflow activity, their blog, and other examples of what they’re interested in.

Selection criteria

This part is subjective; only you know what your team needs. But here are some of the technical skills you might want to look out for in a remote developer:

  • Their preferred programming languages/frameworks. A great candidate will have a strong background in at least one language; it could be JavaScript, C#, C++, PHP, Java, Ruby, Python, etc. and they might have a preferred framework as well (e.g. React, Angular, Ruby on Rails, or Django.)
  • Problem-solving skills. How does this candidate approach a new problem? Strong developers have a process in place for tackling new challenges and can describe strategies to spot and solve problems in their code quickly.
  • Integrated Development Environments (IDE). Integrated Development Environments speed up the work and help developers write, compile, run, and debug their code. How is their code editor set up? Everyone has a preference but this can give you insight into how senior a candidate is.
  • System design. Developers who understand system design have a better understanding of how changes can be made to the system and its elements, and what those changes will mean for the entire product.
  • Database management systems. With these skills, developers can backup, secure, and manage their database.
  • Source control. With source control tools, developers can keep track of different file versions and the source code. This is especially helpful when many developers are working on the same set of files.
  • Cloud services. Developers who can use cloud platforms like Amazon Web Services understand how to use these platforms for your company’s cloud computing strategy.
  • Data security and data privacy. Now more than ever, you might prioritize choosing developers with data security and privacy skills.
  • Algorithms. Developers need to know how to organize data and use algorithms to solve issues in a meaningful way.
  • Clean maintainable code. The best developers write code that is easy to read, flexible, built to last, and won’t have to be rewritten anytime soon.

But don’t forget that developers need to have more than solid technical skills. COO of ProdPerfect, Erik Fogg, who has been on both sides of the hiring table, explains:

“The biggest challenge with regards to remote hiring that I faced is not understanding the “soft skills” or hidden talents that I brought to the table as a developer.

When I took “screening tests”, they were incredibly basic and often could be researched, memorized, and deployed come screening time because of how expected they were. Or some of my greatest talents that help round out my technical skill-set, weren’t given a chance to be showcased at all in the application process.

That being said, I did work at some great organizations along the way, and have had the pleasure of hiring remote developers for our own company and there are some best practices.

1. Define the EXACT day to day responsibilities and feel of the specific job for your organization. Not some boilerplate you pulled off of LinkedIn or some unicorn level wishlist of unrelated skills.

2. Have multiple interviews, in multiple formats, and get everyone involved. The hiring process should be well rounded and allow both sides to weigh in and determine a good fit.

3. Leave everything on the table. Don’t try and out leverage each other or try and “win”. Treat the hiring process like a relationship, not a zero-sum game.”
erik fogg, prodperfect

A process for communicating with candidates

A great candidate experience requires that you keep candidates in the loop of your hiring process.

First, keep track of them with an applicant tracking system like Greenhouse.

Make sure that you communicate with them every week so that you don’t leave them wondering why you haven’t gotten back to them yet (and also, to minimize the risk of losing them to another employer).

And once you decide not to move forward with a candidate, send them a polite note:

Hi [Name],

Thanks for your application! We loved learning about [insert an interesting point in their application]. That said, for this position, we’ve decided to move forward with other candidates. Best of luck and we hope to stay in touch!

3. Interview remote developers

Next:

Interview your candidates.

Here’s a script you can send to the candidates you want to invite to an interview:

Hi [Name],

Thank you for your interest in working at [company].

We received your application for the job [job title]. We would like to invite you to a short phone interview to learn more about you and discuss the job requirements.

You will be meeting with [interviewer’s name and position]. The interview will last approximately 30 minutes, and we’re going to focus on understanding more about why you’re interested in this role, your past experience, and how we can help you achieve your career goals.

Feel free to raise any questions about our hiring process, the role, or our company by replying to this email.

Which of these options would work best for you?

[Include a few different alternative dates and times for the interview]

If these options don’t work for you, let us know your availability for next week.

We are looking forward to discussing this position with you!

Best,

[Your name]

We recommend three separate interviews:

First, a shorter phone screen interview with the recruiting team. This is an interview to get to know candidates better before you move them on to a skill assessment.

Second, an interview after the skill assessment with the candidate’s potential supervisor. In this interview, you should reflect on the assessment and dig deeper to really understand how candidates approach their work.

Third, an interview with more team members (or the entire team) to assess fit and vibe with their potential future colleagues.

two women sit across from a candidate

Tools

When you’re interviewing your developers remotely, you can either use a phone or a video meeting tool. We recommend calling candidates for the initial phone screen and following up with video calls.

If you don’t already have a preferred video call tool, these options can work well for you:

Just make sure to let the candidate know which tool you’ll be using during the interview! Save the candidate’s contact details and share your own before the interview. Verify that they’ve accepted the calendar invite if you send one. And to ensure no technical glitches keep you from running your interview, ask for a phone number… You never know!

Also, ensure you have a silent space to interview. And ask the candidate to find a distraction-free spot for the duration of the interview too.

You don’t want to end up in this situation…

(That said, you should have some empathy for people’s different situations. Some candidates just can’t leave their kids or find a “nice” space to participate in interviews.)

As the interviewer, it’s your job to make the entire interview process feel comfortable for the candidate. You can start the call by asking them how they are and giving an overview of the interview. Be sure to introduce yourself in the beginning! Remember that it’s harder to read someone on a video call, so you might want to make more visible gestures (for example, smiling and nodding) than you would in a face-to-face setting.

Identify the best candidates

How should you approach your remote interviews? It’s definitely harder to get to know someone over a video chat than in real life.

That said, there are ways to identify the best candidates.

Research has shown that you should structure the interview process by asking candidates the same questions in the same order. That way, you create an objective process and can evaluate candidates fairly.

Also, ask behavioral questions. Behavioral interviews focus on a candidate’s past accomplishments as an indicator for future success. A question might be: “Describe a situation where you did well on X.”

Note: If you’re hiring remote freelancers, you will need to fit the questions. After all, freelancers might have more restricted availability than full-time employees. Denis Jastrzebski, a remote web developer and designer at Hawking Design, explains:

“The interview process would change slightly. Besides your standard interview questions, ideally you ask questions regarding the freelancer's schedule, such as: 'Do you prefer to be contacted between certain times?' or 'How have you dealt with timezone differences in the past successfully?'"
denis jastrzebski, web developer and designer

Tip: We talk more about interviewing developers in this post.

4. Assess remote developers

At some point, you’ll want to assess your candidates to get a good understanding of their technical skills. Not only does this help you to understand how each candidate works in a real-world environment, but it also helps you to make your hiring process more objective.

Your assessment options

There are quite a few ways to assess your remote candidates.

  • Screening tests. These tests are designed to filter out applicants. We don’t recommend using a screening test unless you have too many applicants. The reason is simple: They are ineffective. They create a bad candidate experience and they don’t accurately demonstrate someone’s skills.
  • Pair programming tasks. Pair programming, where a member of the hiring team and a candidate work together to solve a task, isn’t a bad option. However, if done poorly, it’s also not a good one.
  • Live coding interviews. This is the digital version of whiteboarding tasks, i.e. where a candidate solves a problem while the hiring manager watches and asks questions. In a way, they’re better than whiteboarding tasks because candidates use their own computer, but they’re still a stressful candidate experience and may not be a great way at uncovering a candidate’s skills. In short, they create stress and anxiety that are especially bad for creating an inclusive hiring process, and underrepresented candidates are way more likely to fail them.
  • Coding challenges. We love take-home coding challenges! With take-homes, a candidate is asked to solve a task at home, using their own computer. You can give them a time limit, like 3-4 hours, and then the candidate is free to approach that task however they want to. The reason they’re so effective is that they simulate real tasks, just like the tasks a candidate would complete on the job. And they help you create a more bias-free experience. The best part? Coding challenges work really well for remote hiring processes.

Take-home coding challenges

We strongly recommend that you use a take-home coding challenge to assess your remote candidates. CodeSubmit supports 60+ languages and frameworks and is built with remote hiring processes in mind:

library assignment preview on codesubmit

For SMEs and startups, we recommend a hiring process like this (onsite interview in remote processes just means that the candidate meets the team over a video chat):

a good technical hiring process

For enterprises and other companies with too many candidates, we recommend that you first send out a screening task before or after the phone screen. However, this can create a bad candidate experience, and we only recommend it if you have a very strong employer brand so that top-tier talent is willing to put up with a process like this (think: Google-level employers.)

Once you’ve filtered out candidates, you can move on to a hiring manager interview. After that, it’s time to send out a short take-home challenge.

For example, the remote company Basecamp uses take-home challenges when hiring developers. They send out take-homes later on in their interview process and only to fewer than 20 candidates. Note that Basecamp receives 1000+ applications for each open position so they definitely have a lot of folks to sort through -- but they still manage to create an excellent candidate experience by limiting their take-homes to just a select few.

Best practices for a great candidate experience

There are a few best practices to keep in mind when it comes to take-home coding challenges. You should consider that just like you’re investing time in a candidate, they are investing time in you. Be respectful of that time to create a truly great candidate experience (which will help you attract even more of the best developers out there).

  • Keep your take-home coding challenges short. A 3-4-hour project is enough.
  • Give feedback after the task is done. Even if you don’t end up hiring a candidate, give them feedback on their work. This is just good manners- the candidate spent hours on your task.
  • Use a task that resembles a real task they’d be working on once hired. At CodeSubmit, we offer a library of tasks if you don’t have one yourself.

How to onboard and work with your remote developers

The final step is to onboard your remote developers, and ensure that they are equipped to do their best work. Andy Johnsen, freelance web developer at Upwork and id23, explains what he looks for in a project:

“I appreciate when a potential client has a clearly defined set of goals they are trying to achieve. I can then offer solutions and timelines point for point. Generally, this expedites the hiring process and helps us both stay on schedule.

Communication is key. Clear and concise requirements from the client are essential to meeting their goals. My aim is to provide the highest quality solutions for my clients in the most efficient and timely manner. Having a clear understanding of what my clients are looking for ensures they get the most benefit at the lowest cost.”
andy johnsen, web developer at id23

Onboarding remote developers

First, you need to properly introduce new hires to your company.

Send an email once they’ve accepted the position where you welcome them to the team.

Here’s a template you can use:

Hi [Name],

We’re excited to welcome you to the team! All of us are looking forward to working together and (include your company mission to show that their work has a bigger purpose).

Before you join us on [start date], we wanted to help you navigate your first day.

  • Include an agenda of their first day, including information about the tools you use so that they can prepare in advance.
  • Include useful information about working hours, your work processes, and invite them to join your Slack channels (or any other platform that you use).
  • Give them information about who to contact and how, in case they have any questions.
  • Explain how they will receive any equipment that they need for the job.

You can also automate a series of emails that explain your company values, culture, history, and mission to get candidates on the same page about where you are and where you want to go.

And don’t forget to give your new hire very specific goals and tasks. Follow up on these tasks throughout their onboarding to create a great experience right from the start.

Mistakes to avoid

That said, there are mistakes that make projects fail and employees lose motivation. Here are the top mistakes your hiring team should avoid:

1) Unrealistic budget and expectations

A successful remote project requires that you understand what your expectations are and the time and other resources you are prepared to invest. Ensure that you and your remote developers have a written project description in place before you start working on it. Communicate any budget changes or goal adjustments to your developers so they know how to perform their work.

2) Communication

Too many projects fail because of insufficient communication. Be extremely clear with your expectations and requirements and set up processes for communicating with your developers. For example, set up milestone meetings or weekly team meetings, depending on what works best for your team and project.

Finally, you need to have proper legal agreements in place. An agreement doesn’t only work to ensure you can enforce your rights if needed. It also makes sure that both parties (you and the developer) understand the project scope.

Reference to a project brief in the agreement, or include details about:

  • Timeline
  • Development process
  • Testing process
  • Software deployment and integration
  • Support and maintenance
  • Updates, patches, and releases

That’s it! Now you know how to successfully hire remote developers.

What it comes down to is knowing what you want, having a solid process in place, and focusing on really understanding a developer’s skills before hiring them.

Ready to get started? Try CodeSubmit for FREE and start assessing remote candidates’ skills!