The Five Stages of Interviewing Offshore Software Engineers

The following describes some strategies that I use while interviewing candidates for Software Engineering positions in offshore locations. I actually have brought those techniques together into five degrees:

Logic and Problem Solving Ability
Computing Knowledge
Specific Skills
Spoken and Written English Ability
Communication Skills and Personality

engineers
1. Logic and Problem Solving Ability

When I first commenced out interviewing offshore software engineering candidates in Malaysia, I wasted loads of time looking at their CVs and the use of those as the premise for the primary degrees of interviews. This resulted in the candidates doing quite a few talking approximately initiatives they (claimed) that they had performed and competencies they (concept) they had earlier than I even began measuring their technical capacity. Some CVs appeared very superb certainly, their authors claiming almost countless lists of abilties acquired, many of “superior” standards. Now, returned to the UK, for the maximum element when speaking about tremendously professional jobs there’s an unspoken rule with regards to CVs, candidates simplest list capabilities which can be sincerely well worth listing and definitely being organized to lower back up any claims of “superior” ranges of proficiency in any of these claimed capabilities. It is no wonder that upon receiving such remarkable CVs in Malaysia I assumed the candidates had been very high high-quality indeed and determined that the primary hour of the interview ought to be about them speakme about their enjoy (to assist them loosen up into the interview) and me doing a piece of a promote on the function and agency. Only after that would we dive into the technical questions, which gave the impression of they might a breeze for them. Unfortunately, the aforementioned CV “rule” that applies in the UK does now not practice in Malaysia, nor does it at another offshore location that I have interviewed candidates from to this point. I ought to consequently pretty effortlessly waste the primary hour of an interview speaking to a candidate approximately their CV, and perhaps spending some time speakme approximately the position and the employer, before even considering getting their palms grimy with some technical questions. When the technical phase started, many applicants have been became down because it fast became obvious that the character I had talked to for the preceding hour or so become not the person who turned into at the piece of paper (the CV) in the front of me; they had exaggerated wildly and in some instances blatantly lied on their CV.

When most effective recruiting for one or two positions, losing an hour right here and there talking to a candidate who has intentionally fabricated their CV isn’t a massive deal. Indeed, many applicants I talked to have been sincere and I finally employed them. However, while recruiting on a bigger scale offshore, the numbers cross against you and such a method may be highly inefficient. Given that I become recruiting on a bigger scale, I needed to find a way to decide as quickly as viable if a candidate I became interviewing became well worth speaking to similarly. I, therefore, positioned apart their CVs and lumps of certificates and jumped directly into a bunch of common sense and trouble fixing activities (which contain writing code) at the whiteboard; I changed into quietly surprised with the consequences.

The questions had been short and simple, regularly programmatic, along with:

Using the language of your choice (or maybe pseudocode for junior candidates), write a characteristic to reverse a string.
Using the language of your choice (or maybe pseudocode for junior candidates), write a function that prints all of the high numbers from 1 to n.
At the very start of the interview, earlier than asking those questions, I could I often ask a candidate to price themselves, 1-10 (1 being amateur, 10 being superior), in each of the programming languages they indexed on their CV, pretty some responding expectantly that they were eight,9, 10’s in languages which include C and Java. I might record these rankings at the whiteboard, in view of the candidate, for later reference. I then asked the candidate to finish questions much like (1) and (2) at the whiteboard in the front of me. The key with the questions is that I emphasise to the candidates that they may be to choose which language they want to use when writing the answer to the trouble, accordingly removing any capability for them to say they struggled with the question because of a selected language being imposed on them. Furthermore, I am happy for them to apply pseudocode / English if they are not able to code the solution (although that in itself will inform me some thing approximately the capability of the candidate and could set alarm bells off if they may be making use of for a extra senior position). Based on the candidate’s technique to problems which include these, it would not take lengthy to set up if they’re worth interviewing further for the position in query. We are speaking mins. For example, I nonetheless vividly recollect an already very senior candidate C developer who had worked within the USA as an embedded engineer and was now lower back in Malaysia running on C code associated with aviation structures. He applied for considered one of my senior software engineer jobs in Malaysia. On paper, he regarded extraordinary – precise diploma, sturdy heritage and the right skills. To my wonder, he struggled to opposite a string in his language of preference, C, for which he had rated himself as a nine while asked at the start of the interview (and which I wrote on the board). I do not imply he were given one or statements incorrect due to no longer remembering syntax, I imply he completely couldn’t reverse a string as in step with query (1) above. After a ways too much steerage from me, eventually we were given there. Thinking he was apprehensive, I then gave him the high numbers question (2) as above. After some initial clarification from me as to what a prime range became (he did realize it ultimately, possibly he forgot) he had no concept where to head and simply wrote drivel on the board, usually wiping it out, confusing his brow and writing but extra drivel. He seemed embarrassed. I stopped it there and asked him what he now concept his ranking became in C. I may want to see the appearance of torment on his face, like he nevertheless desired to stay with his unique answer. “five or 6, possibly?”, he reluctantly admitted. Based on his claimed stage of revel in and the level task he turned into making use of for in Malaysia, I had no further questions. Although I did not set a timer off, I might be amazed if the whole thing lasted 15 minutes.

I now by no means begin an interview without asking similar inquiries to the above within the establishing 15-30 minutes, no matter what the extent of software program engineer I am interviewing for. Candidates do not proceed to other levels with out first getting past this level. The degree of role will merely decide how a whole lot leeway I give for wrong answers. For example, for a completely junior function, what I will look for isn’t always always the proper answer, but how the candidate thinks approximately the answer. At the very least, they need to be capable of describe to me how their set of rules could remedy the trouble. In my view, even for this sort of junior candidate, if somebody has been thru college, achieved a Computer Science diploma, and can not even provide an explanation for a way to opposite a string or does now not realize what a prime wide variety is, they probable should not paintings for me. Likewise, if someone has been operating for 10 years and can’t reverse a string within the language of their choice, they truly should not be running for me. Importantly, very importantly, irrespective of what the level of the candidate is, I make certain that they in no way wager the answer to my problems and try to bluff their manner to a solution, talking approximately it as though it’s the proper solution to affect me. Anybody that has labored for me will know that I hate guessing in software engineering. A candidate who is willing to bet and attempt to bluff their manner via an interview is probably to do the same when they’re operating on a challenge for me or a person else. For instance, they’ll, no longer know-how a problem very well sufficient and therefore guessing, go off and write reams of code that they may be similarly uncertain of. I always inform my group of workers that if they are unsure of the paintings they’re doing, to prevent what they’re doing and are available and spot the team chief or me to discuss; in no way bet. So, I continually bounce onto any evidence of guessing at some point of this degree and discover why the candidate is doing it.

One other factor well worth mentioning about the wondering techniques I describe above is that which can be clean to behavior with applicants which might be far flung, as long as they have a PC and Internet connection. For example, I have interviewed applicants in completely distinct nations by means of putting in a shared whiteboard session (many Internet communications tools provide this kind of facility) or a shared Google Doc and asking them to kind the answer to the problem while we talk over the cellphone. Arguably, for the reason that we aren’t inside the same room they could cheat through looking up solutions on the Internet, however, because I do no longer permit a great deal time for the questions and I am additionally at the smartphone at the time, that is not going. Furthermore, I take steps to look for any answers to the issues I ask on line and make certain they did no longer merely type out one of those. That stated, even supposing I am suspicious that they copied a positive solution, it’s far trivial for me to build upon their answer and ask them to alter it to resolve an associated hassle. Use of this approach has allowed me to display many far off applicants earlier than inviting them to travel to my place of work for an interview.

To summarize, my recommendation while interviewing offshore applicants is to get a brief deal with on their Logic and Problem-Solving capability earlier than determining whether or not or not to move on to speak approximately their enjoy and the role. Spend as much as 30 minutes doing this and give them a fair danger to answer a range of questions, now not just a single query. Make sure the questions contain definitely writing code, however, make certain the questions allow flexibility within the languages used except the position you are recruiting for is a senior function that uses normally mandates the use of a selected language. By all way ask further Logic and Problem Solving questions in later levels, however, the key of this degree is to offer a short “Go” or “No-Go” on a given candidate.

2. Computing Knowledge

Although I understand of a number of examples of work-mates that neither studied Computer Science at degree degree nor had any knowledge of computers who went directly to grow to be outstanding software engineers at some point of their career, when I interview offshore applicants I do search for General Computing Knowledge; such a lot of aspects of the work, at least in my experience, that software engineers do every day depends upon a having a solid foundation of the principles of computing. Perhaps greater manifestly to me, I believe it to be of excellent advantage if a candidate has a actual interest in computers and knows how they’re paintings. More often than now not, such applicants may have interacted with computer systems regularly as they have been developing up, possibly taking them aside, making adjustments, gambling video games, configuring networks and suchlike. I continually maintain a lookout for these candidates and they truly exist in offshore locations together with Malaysia.

An easy way to decide how lots a candidate knows about computer systems is to ask them to attract a diagram of a laptop on a whiteboard, asking them to label the numerous additives of the system. Then ask them to describe the function of these additives. It’s a simple query and how properly they perform at this query will supply me an idea of how a great deal they understand approximately computing. If they do well on the question, perhaps I’ll throw in some more tough questions about the hardware or maybe we’ll flow onto software consisting of speak approximately how a compiler works, or possibly we will communicate about essential algorithms. The stage of questions I ask relies upon at the seniority of the function being applied for, but I nearly constantly start with a query approximately a laptop. This workout, given that it’s far particularly on the whiteboard, additionally gives me a further possibility, following the Logic and Problem-Solving degree, to assess the candidate’s communique abilities.

When I became at Nottingham University inside the UK studying for my diploma in Computer Science, I become surrounded by humans like me, folks who loved computer systems and who “messed round” with them on a regular basis, only for the amusing of it. In my view, people like this want to be seemed out for, so I nearly constantly ask offshore applicants why they’re pursuing a profession in software program engineering and attempt to find out how fascinated they may be in computer systems.

My advice, therefore, whilst searching out offshore applicants is to search for those who have a real interest in computer systems, who own an awesome expertise of their internal workings and who can solution usual laptop science kind questions conveniently. Try to set up how correct they’re in this area before you move on to precise capabilities, as that stage will maximum possibly require appreciably extra time and contain humans apart from your self in case you are the hiring manager.

3. Specific Skills

By this degree, following the preceding two stages, which simply worried me and the candidate, I will now have a pretty proper “intestine sense” on the candidate’s suitability for the role. After a little greater speak approximately their revel in and profile (such as communicate approximately software program development strategies and many others), in addition to a few more speak from me about the function and business enterprise, now could be the time to get different human beings worried and begin assessing precise capabilities. I typically contain at least two of my software program engineering subordinates inside the talents assessment stage, in addition to as a minimum an extra human beings manager. If the candidate could have any dealings with the center crew (most in all likelihood), I will also consist of engineers and executives from the center crew workplaces e.G. Within the UK or US. All are loose to invite any questions they prefer and their views hold giant weight in my decision-making procedure. After all, software improvement could be very a whole lot a team recreation and it’s miles important to me that my group buys into the idea of a given candidate becoming a member of their team; they are those to be able to be operating with them everyday. I therefore allow to several hours of talks with those numerous stakeholders, either at the same day or on alternative days if time does no longer permit. Some of these talks, if with foreign places colleagues, take location via telephone, Skype, or suchlike.

I then usually end off the abilities evaluation degree by giving them one or more on-line assessments on applicable subjects. I use a good dealer of such tests. Although these tests do help me form a view of a given candidate’s talents, I commonly supply them ways less weight than the opinions of my subordinates and different colleagues. In most instances, their capability to establish if a candidate can do the task ways outweighs the results of those online tests, but it is all approximately forming a total image of a candidate.

To summarise this level, my recommendation approximately unique abilities is to get as many technical and managerial people worried within the interview method as you may, inclusive of the ones from center groups if relevant. Meet up /talk in the end interviews are finished and are available to a end as a crew, every giving a “thumbs up” or “thumbs down”. Also use on-line testing equipment to further verify particular skills, but use their outcomes with warning.

4. Spoken and Written English Ability

For pretty plenty any local English-speak commercial enterprise this is to interact with an offshore software program improvement crew that, maximum in all likelihood, speaks English as a 2d language, proficiency in spoken and written English is paramount. A given offshore software engineer can be a good programmer, but in the event that they cannot communicate with colleagues inside the main us of a wherein the business operates it’s going to motive a brand new set of issues targeted round verbal exchange. I keep in mind returned to around 2003 when one in every of my pals inside the UK, who at the time was coping with a computer equipment provider in Taiwan, wrote them a technical query about their firmware code. Although I do now not recollect the right question he asked, which was in an e mail, it became very open-ended, some thing to the impact of “Could you please describe the characteristic of this firmware module in more element”. The solution he obtained, plenty to the leisure of all of the colleagues that had been inside his proximity at the time, turned into “Yes.”. In Malaysia, where I presently run my enterprise, English is spoken and written rather well as a 2d language. However, not all candidates that I actually have interviewed have had a sturdy command of the English language, in large part down to the vicinity wherein they grew up and the colleges and faculties that they attended. Conference calls with such applicants, or e-mail exchanges, or file write-ups, might be very hard certainly. I always, consequently, verify spoken and written English abilities throughout an interview. The spoken element is trivial because the candidate, primarily based at the preceding 3 stages, could have talked to a number of my colleagues similarly to myself, so we will shape an opinion on their working understanding of English. For the written element, I did no longer used to spend lots time investigating this in the event that they spoke English properly. However, one in every of my subordinates at the time once counseled to me that we have applicants write a short file on a non-technical concern that quite tons any candidate would be capable of write approximately. For instance, the topic to write about in English might be “Describe the character you maximum recognize in the world and why”. This is the sort of subject matter anybody have to be able to write about, regardless of what their career experience and technical heritage is. Some people may write about a top notch leader or scientist that they respect. Some may additionally write approximately one in every of their mother and father or family. That is the splendor of such an open-ended question. I therefore now include this sort of workout anyplace viable whilst interviewing an offshore candidate to evaluate their written English talents.

Interviewing

In precise, my advice for this stage is to realize with the significance that spoken and written English capacity play in offshore development eventualities This may additionally sound obvious however it’s miles something that may be ignored in all the drama of assessing particular programming skills and so on. In precise, written English capability may be effortlessly ignored if the candidate sounds like they are able to speak moderately true English. Ultimately, failing to properly examine the written, as well as spoken, ensureEnglish capabilities of offshore applicants may additionally vicinity needless burdens on the middle team, who will come to be dropping time and getting pissed off inside the manner. To verify English capabilities, to begin ensuring┬áthat each one interviewer concerned in the procedure take word the candidate’s spoken English capability, specifically the ones conducting in-depth tests of capabilities (as an example, how nicely does the candidate articulate approximately a certain technical subject matter?). To assess written English skills, one trivial approach is to give the applicants an easy written English workout that is open-ended and non-technical. Any local English speaker could be capable of reading their answer and speedily decide how right their written English abilities are.

5. Communication Skills and Personality

In software improvement, given that it is able to be the concept of inside the context of a group game, conversation talents, and persona traits naturally come into play. Assessing conversation abilities and persona tendencies isn’t always something I depart till the quit. In fact, it’s far something this is achieved in nearly all the tiers previous to this. By this degree, I definitely have an awesome deal with on a candidate’s verbal exchange abilities; this stage simply completes the method and considers Communication and Personality one at a time from the alternative degrees. One of the matters I like do on this stage, which I experience is pretty critical, is invite the candidate out to lunch with my team. This offers comfy surroundings wherein to speak approximately both work and non-paintings related topics, and is an opportunity for the group to further benefit confidence in and attractiveness of the candidate. It simply gives a great photo of the way a capability candidate will healthy into the crew. Likewise, it lets in the candidate to speak with many contributors of the crew and ask questions about life within the enterprise, the form of work being done, and suchlike, so it is a useful process for them too.

On our return to the office after lunch, I actually have a very last session with the candidate to invite them extra verbal exchange and character associated questions. I am no longer partial to psychometric assessments or suchlike, so I hold it verbal and rather casual, however, the sorts of questions I ask are all about ascertaining if the candidate may want to fit into the offshore group in addition to paintings with the center team. In addition to further discussing the position, I might perhaps ask pretty open questions like “What might you do if somebody changed your code and broke an area of capability that you had carried out?” Or, “How might you react if the team leader insisted that you used their method rather than yours?” Or, “What’s your view on coding requirements?” The solutions to these varieties of questions can suggest persona trends that can be disruptive in group surroundings and might need further research earlier than making an offer. In a few cases, for greater senior positions, I provide them a chunk of code and ask them to study it, looking at how they go about the procedure and what kind of problems they find. This is not honestly about the talent in accomplishing a review (we’ve already assessed abilities), but extra about how they speak with me. I additionally like to ask questions about checking out. An accurate software engineer is aware of how to check code that they write, and explaining that is a workout in conversation.

One final workout I supply them to illustrate their communication skills is some other whiteboard workout. For example, I can also ask the candidate to map out their profession plans onto the whiteboard. This no longer handiest permits me to look how driven the candidate is with appreciate to their personal career, but also suggests me how top they’re at providing information to a target market. Another comparable query I could do on the whiteboard is to invite them to describe a software improvement method that they claim to know approximately.

With the notes I make in this stage, together with the notes from all of the stakeholders that interviewed the candidate, I am now able to conclude if the candidate has the essential Communication Skills and Personality trends that would cause them to a possible healthy for the function they are making use of for.

After a very last discussion with the group and those that interviewed the candidate, I am now ready to determine whether or not a suggestion is to be made.

To finish, these are the ranges I go through when interviewing offshore software program engineers. I need to also point out that I actually have tailored the above degrees quite without difficulty to cater for interviews with other kinds of offshore applicants, for instance, Software Test Engineers.