Interviewing remote engineers is a craft. Learn what makes for an effective process for interviewing engineers remotely.
Hiring software engineers has become challenging. The number of companies that need world-class talent is continually growing, and the number of unemployed engineers is low. In fact, the unemployment rate of software engineers is 1.6%.
But, aside from finding tech talent, there's another issue with hiring EXCEPTIONAL engineers. One of the main goals of every founder is to put together a great engineering team that will move the company forward. Having exceptional minds working at any startup company means innovative ideas and a superb product.
As a startup founder, I've personally interviewed engineers from all around the globe. Over the years, I've made good decisions and bad ones. From what I've learned from my experience of interviewing engineers remotely, I want to share some tips:
- Consistency is critical for optimal results
- Know who you are talking to
- Check for soft skills and cultural fit
- Give some weight to a college diploma
- Avoid hard technical questions and ask questions that are related to the job
- Decide what skills matter for the role and then vet for those skills
- Give each candidate the same coding assignment
- Try pair programming
- Ask for references
- Screen for ability to learn
- Final Word
Consistency is critical for optimal results
Before we dive into what to do (and what not to do) when interviewing engineers remotely, it's important to note that you need a thorough, standard interviewing process. A standardized interviewing process will help you arrive at more meaningful conclusions.
Sometimes startups struggle with this part. The interviewing process often depends on how busy the team is, who is available, and what the company focuses on at that moment.
As challenging as it can get, by having set up a thorough interview process, you'll have a chance to test a candidate's technical skills, soft skills, as well as cultural fit. In other words, you'll get the bigger picture.
If you're going to have three sessions, then keep that same process for all candidates.
By taking this approach, you can make sure that the candidate gets several opportunities to display their skills.
At Adeva, we specialize in finding top engineers worldwide. We have three different steps, each of them used to evaluate something specific.
- Pre-qualification call: we schedule a Zoom call to understand more about each engineer. For us, it's really important not only to evaluate a person's communication skills but to also identify in what type of environment an engineer will thrive the most.
- Skills evaluation: the next step in our process is to make sure the engineer is a top-notch candidate in terms of skills. In this step, we ask the developer to complete a coding challenge with a certain technology. When reviewing the assignment, we pay attention to the architecture, coding style, unit tests, etc.
- Company culture check: The third step is to identify in what company culture the developer thrives. It's never a good idea to put a person with a startup mindset in an enterprise culture when things are slower. Or, the other way around.
Know who you are talking to
Do your homework. Review the developer's profile in detail. Google them to find any significant/ insignificant achievements. Doing proper research will not only help you have an engaging conversation, but will also help you create a better picture about the candidate.
Public profiles and activities can tell you a great deal about a person. If someone has a high-scale achievement or has won a competition, that shows commitment and ambition.
Chances are that you can find almost every engineer on GitHub and StackOverflow. Make sure you review their profiles, see their activities, contributions etc.
If you want to go even deeper, try to see their reading lists on Good Reads. That will tell you a lot about their interests.
And no, that is not spying - it's completely fine to do quick research to know who you are talking to.
Check for soft skills and cultural fit
With engineers, it's not only the technical skills that truly matter. Soft skills are also important. Every technical hire must be equally skillful with writing code and communicating with colleagues.
Soft skills in software engineering will become even more critical in the future of work. What most growing companies need is a technical talent who can not only “get it done”, but also communicate effectively with colleagues or stakeholders.
During the interview, try to analyze whether the candidate possesses the following soft skills:
- Problem-solving skills and critical thinking
- Communication skills
- People and interpersonal skills
- Time management
Cultural fit is another big topic in the startup realm. According to a study by Leadership IQ, 46% of new hires will fail within 18 months. Of the 46% who fail, 11% lack the required technical skills, while 89% have difficulties integrating into the workplace.
What every company needs is people who will expand and enhance its values. That person will need to help you further the mission of the company.
If you're a remote company, you have to look for specific traits in candidates. What is their experience working remotely? Do they believe in the remote-work model? These people have to have exceptional communication skills, be able to work under minimal supervision, and have a strong work ethic.
Give some weight to a college diploma
Giving some weight to a college diploma makes sense. But completely disqualifying a candidate due to the lack of one is irrational. Companies that do this risk losing a talent pool of qualified candidates.
In some cases, even a person who has graduated from an Ivy League college and worked at Google might not be a cultural fit for your company.
On the other hand, you can have a candidate who doesn't look good on paper but possesses exceptional skills. If you give them the chance to attend an interview, maybe they will surprise you with their technical and communication skills. Maybe what candidates like those need is to work at the right company where they will get the right opportunity, motivation, and career growth. Resumes are only one data point, but you need several in order to get the real picture.
Avoid hard technical questions and ask questions that are related to the job
Instead of checking whether a candidate can answer a question, the more important thing is to see how a candidate will answer a question. If you ask a very difficult question, there's a chance that the larger part of your candidates may not solve it at all.
Analyzing how a candidate answers a question can tell you how experienced they are in the field. If a candidate answers the question quickly without overthinking it, then that candidate is probably more skilled than those who take a long time to give you an answer. I really value when someone shows up with a piece of paper and a pen on a technical interview. To me, that shows that he or she is ready to smash the interview before it has ever started.
To improve communication during the software engineer interview, consider adding a third person to the interview. Instead of doing one-one-one developer interviews, add another colleague to the mix as that can open up the discussion.
If you need help asking the right questions, take a look at our compilation of interview questions for software engineers.
Decide what skills matter for the role and then vet for those skills
There are thousands of languages and frameworks. Successful software developers possess a set of technical skills in specific areas. If someone has over 30 languages listed on their CV, don't hesitate to reject their application - unless they have over 15 years of experience.
So, my tip here would be to decide what skills matter for the role you're hiring for and vet for those skills.
Try answering the following questions:
- Which types of tech roles am I looking for? Is it front-end, back-end, full-stack, data scientist, technical product manager, or site reliability engineer tech positions?
- Which technologies does my tech team use, and is the candidate acquainted with those technologies?
- Am I looking for junior-level engineers or senior engineers?
- What problems will they be solving at the company?
Give each candidate the same coding assignment
There are great arguments for giving candidates coding assignments and strong ones against it. On the one hand, these assignments are an excellent way to see if the candidate can solve problems and if their code is well-structured.
On the other hand, many of the developers you'll be interviewing will already have a full-time job. Meaning, they'll struggle with balancing their full-time jobs and finding time to complete the assignment. Chances are, the best engineers will never use their free time to complete a take-home project.
If you don't want to lose a large pool of tech talent, my advice here would be to not make the take-home assignment mandatory. Also, make it a small and easy project that can be finished in 2-3 hours. If it's a well time-boxed assignment, you'll have more candidates completing the project.
Try pair programming
Many tech companies use whiteboarding when testing their candidates' skills. However, whiteboarding might not be the best indicator of programming skills.
I want to propose a different type of technical test: pair programming. Pair programming is a great way to evaluate a candidate's problem-solving and communication skills.
There are many amazing assessment tools you can find that you can use to conduct pair programming. One such tool is the HackerRank Code Pair tool. You simply choose the challenge you want the candidate to take or load your own. Candidates can edit code, provide input, and test code live on the platform.
Just like HackerRank, Code Interview is another amazing tool for assessing your engineers. It’s a cloud-based live programming tool that challenges candidates to solve coding problems in a live environment with an online code editor and compilers. These tools can be especially useful if you're a remote company.
Ask for references
Sometimes, you might think you’ve found the right candidate only to learn that they are not what they presented themselves to be. It's possible for a candidate to inflate their qualifications or to have some other professional skeleton in their closet. You can avoid hiring the wrong person and losing time and money on a bad hire by simply conducting a quick background check.
Instead of guessing what kind of a candidate you're dealing with and making a decision based on intuition, references are a great way to learn more about the developer. Find the references the candidate has listed on their application and get in touch to ask if they would recommend the candidate for future employment.
Contacting a previous employer can give you vital information about the candidate. They can uncover the candidate's strengths and limitations or offer you advice on how you can motivate and support that person once they're hired.
Screen for ability to learn
You should be hunting for developers who are willing to take on a challenge and grow their skills. In a field that is always changing, having developers who can adapt to new technologies easily and aren't scared to handle any situation, are of high importance.
During your vetting process, make sure you screen the candidates for ability to learn and adapt. You want them to have the skills to accept challenges and provide a solution. You can screen a candidate's ability to learn through looking at their past experiences, asking the right type of interview questions, and giving them hypothetical situations and problem-solving exercises.
Interview processes are a craft. And in a highly competitive market, the companies with the most effective interviewing process will be those that will recruit the best engineers.
Your company must strive to build highly functional interviewing processes that will detect engineering skills more effectively than anyone else's.
Your end-goal should always be to build a great remote engineering team that will be well-rounded, with lots of different skills and points of view.