Codementor Events

The Subtle Art of Interviewing an Offshore Developer

Published Dec 02, 2018Last updated May 30, 2019
The Subtle Art of Interviewing an Offshore Developer

As part of my business, I get to interview offshore developers regularly, for all kinds of positions and projects. These interviews definitely have some quirks to them that you won't necessarily find when interviewing in-house candidates.

Most interviews usually take place over Skype and the like. By their nature, virtual communication forms tend to limit human interaction and hurt the flow of the conversation. Not to mention technicalities like delays and bad connectivity, which, combined with language and cultural differences, allow plain conversations to lose a lot of their effectiveness for evaluating candidates.

Additionally, the position requirements are quite different. Communication and time management skills are given much more weight when it comes to evaluating an offshore developer. You do not have the luxury of constant interaction and supervision over what's going on; you need someone who you can "unleash" without them going rouge. You need someone who can communicate his progress, raise a red flag when needed and have the decision-making ability to switch tasks when appropriate.

In the next few paragraphs I'll share tips, methods and the steps I take when interviewing. Hopefully you'll find some useful information that will help you avoid the pitfalls of recruiting an offshore developer.

Pre Interview

OeZOTaD93UqcncsJKDsNxwYlu2uUg5jzzZNvRHclO2s.png

Before the actual interview, it's worth it to take a few minutes to go over the candidate's CV again (assuming you already did that for the initial screening). I usually don't take CVs too seriously, at least, not for the obvious reasons. By reading between the lines, a CV can tell you a lot about the candidate and help you to get the initial feel for what this person is about.

One thing I've noticed is that there's an obvious correlation between the "textual clutter" in the CV and the quality of the candidate. Some common "tell" signs I usually see in CVs are, for example, repetition of sentences, specifying minor technologies as skills (html, css…), and redundant or insignificant information.

This does not only point out a general lack of experience but also reflects a lack of crucial personally traits such as attention to detail, professionalism, and thoroughness.

I also like to check their social accounts (Github, Stack Overflow…), it gives me a general overview of their expertise and what type of projects and technologies they're into.

Conducting the Interview

S2e6_hologram_2.png
As a software developer myself, I am familiar with how stressful it can sometimes be to be interviewed, so I always try to create a relaxed and fun atmosphere. Making the candidate feel comfortable is key for having an effective interview.

I usually start off by introducing myself and asking the candidates a few questions about themselves. This takes a bit of the pressure off and helps them to open up. If I get the chance, I always try to slip some jokes in.

Being in this relaxed state of mind and friendly environment usually leads the candidates to share their background and some interesting facts about themselves.

Once I have a better idea on the candidate's background, I usually follow up by asking about their last project, or one that they're proud of. In case I have a particular interest in a project they listed in their resume, I will ask about that.

Asking about previous projects is helpful to get an understanding of their roles and responsibilities in the project. The definition of Senior, Middle and Junior developer seem to be pretty loose and often varies depending on the country and who you talk to. It's important to establish the level of experience as soon as possible as it will determine whether you should cut the interview short or continue to the more technical stuff.

Once we've established that experience on paper, my favorite way to continue the interview is by having the candidate share their screen and walk me through the code. This method has proven to be quite effective when dealing with offshore developers, as it helps minimize the language barrier and places focus on practical experience.

I'll ask the candidate questions about the project, it's propose, the architecture of it, and why he chose to implement some parts the way he did. Occasionally, I'll ask him to choose a section or a class and explain it to me, line by line.

Where this is an opportunity to test their knowledge of the particular technology in question, it is also aimed at helping me understand their technical communication skills. How clear they can pass on an idea? How well can they communicate their thought process? These are things that are crucial to look for when dealing with offshore developers. This is unlike our chat at the beginning of the interview, which its main goal was to break the ice.

It is not unlikely that we'll reach a part of the code that the candidate is not able to explain. This is a priceless opportunity to test their problem-solving skills, and I'll suggest them to see if they can Google their way to the solution. Watching them research and trying to wrap their head around the issue, live, has an immense value and gives you a glimpse to a real world scenario.

Common "Mistakes"

rickle-in-time.jpg
I'd like to point out a couple of common concepts that I find to be non-effective and can even sabotage your goal of finding the perfect offshore developer.

The test project is a commonly used method to screen potential candidates by giving them a "home assignment" to complete before the interview. Firstly, by requiring a test project, you are risking being perceived by developers as disrespectful of their time. Many accomplished developers that think highly of themselves (which are the ones you're after) are likely to turn down a job offer just for that reason alone. Secondly, in order for a test project to be effective, it needs to be rather complex, which would inherently take quite a long time complete — too long to be fair. A better way to evaluate the developers' level of work on a real-life-like project is to use a project, the one that you are aiming for them to work on. As in just start working together and roll from there. Which leads me to the next point — probation peiod.

The probation period is a predefined scope of work that once complete, would be used to determine the future of your engagement with the developer in question. The probation period itself, as a concept, isn't a bad idea — communicating it to the developer is. There is no real reason to let the developer know that he's on probation. As with the test project, it can lead developers to turn you down, amongst other things. A much smarter way is to approach this legally, and have a contract that is flexible enough to let you end the engagement at any time if either of the parties aren't happy. After all, being bound to work together, isn't good place to be for anyone.

Conclusion

Interviews are your chance to test the waters before hiring and investing crucial time in training. Hence, you want to lower the surprise factor. This is even more emphasized when it comes to offshoring. In order to make the most out of your interviews, know what you're looking for and to have system in place to help you test it out.

  • Use the CV as a tool to predetermine the candidate's personality. Watch out for "textual clutter" and common "tell" signs.
  • Create a relaxed and fun environment to make the most out of the interview.
  • Establish the level of experience as soon as possible, It'll have an immediate effect on how you choose to continue the interview.
  • When testing technical skills, favor the practical approach over conceptual discussions, it'll help you minimize the language barrier and technical difficulties.
  • If you can, create a scenario where the candidate would need to use his problem-solving skills - It'll produce some priceless insights.
  • Drop the test projects and probation periods, they might cause you to miss on some talented developers.

Find more about me at maketech.io.

~ Yohai Rosen

Discover and read more posts from Yohai Rosen
get started
post comments10Replies
Rashif Rahman
6 years ago

Classifying HTML/CSS as “minor” skills and their mention in a CV/Resume as “textual clutter” is just plain wrong. Both HTML and CSS are full-fledged languages for the purposes they serve, and becoming proficient in either takes much, much more than being able to write an opening and closing tag.

Yohai Rosen
6 years ago

Thanks for reading and commenting.

I’ll try to explain my views. First and foremost, HTML and CSS are not classified as programming languages, hence, in the context of hiring a software engineer, especially one that is web oriented, they’re assumed knowledge - otherwise, I wouldn’t be talking to that candidate in the first place.

I look at it this way- much like If I were to interview a lawyer to a position in a US based firm, I’d assume he has a good level of English. When interviewing a web developer, I’d assume a good level of HTML and CSS.

Rashif Rahman
6 years ago

Thanks for taking the time to try and explain. That’s perfectly fine if the call is for a front-end or full-stack web developer, but note that in your entire article the phrase “web developer” appears zero times!

I certainly wouldn’t expect a web API or kernel driver developer to have proficiency in HTML/CSS – basics yes, but if she lists them as skills, it’d be a bonus such that I’d consider her as a potential contributor in that space.

Now, I don’t think lumping in all “developers” and “software engineers” as “web developers” was intentional, right? This might appear to be a nitpick, but I just think it sends the wrong message to new recruiters.

P.S: In your profile, I see “HTML/CSS” as a skill for the “Game Developer” experience, and “HTML5/CSS3” as technology for “Senior Web Developer”. You could have chosen to omit them, but actively or subconsciously you did not, because they are relevant.

Yohai Rosen
6 years ago

In the article, I presented an example for minor skills. My example was a CV of a web developer where HTML/CSS would be seen as “textual clutter”.

You are right that it might not be clear. Thanks for pointing this out, your feedback is much appreciated.

It is intentional that the article does not single out web developers, as the process is identical no matter the type of programmer. The specific example for “textual clutter” was taken from a web developer’s CV.

As for my profile, this actually validates my point. You are looking at positions from 6-10 years ago. Back then, HTML/CSS were considered main skills.

Thankfully, we are now at a modern age where these should be considered as minor skills IMO, and this is the point I tried to communicate - now, whether I was successful or not, it’s another story :)

Steve Perkins
6 years ago

I think you mean probationary period and language barrier. Prohibition is when something is banned. Language bearer would be someone who carries a language, I think.

Yohai Rosen
6 years ago

Good catch!
Thanks Steve - updated.

Steve Perkins
6 years ago

Excellent!

Christopher Merrill
6 years ago

Curious if you think the “test project” mistake is any more or less important for local developer interviews than offshore? Seems to me that the thinking would be the same.

Yohai Rosen
6 years ago

Hi Christopher,
Interesting question. The theory seems to work for any type of remote developer, not necessarily an offshore one. In case of an In-house developer, it is more commonly accepted to have these kinds of screening processes. Hiring an in-house developer requires more resources and expenses on the company side, so it would make sense they’d want to ensure the success of the engagement beforehand. Also, form the developer side, the level of commitment is traditionally higher. Seems like the screening process is translated directly from the “real world” to the virtual one, but we really need to acknowledge the differences and rethink what works best for each.

Christopher Merrill
6 years ago

Ironically, your article arrived in my inbox (Codementor community newsletter) just a few hours after CodementorX asked me to do a “small project” in code as part of the application/approval process. I had offered that I have a large codebase in GitHub that I would be happy to demonstrate and discuss at length, so they could judge me on my actual work output, rather than an imaginary problem. They prefer the test project. I’ve sat on both sides of the interview desk and I’d take the examination of the actual work product over a made-up code sample any day. <sigh>

Show more replies