8 techniques to recruit a good software developer (Part 2).

interviewIn my previous post I started discussing the interview techniques which definitely help stimulate an open dialogue with the candidates. I described the STAR methodology which is based on behavioral questions that involve describing real situations from the past. Secondly, I put high emphasis on forming the right open-ended questions that are not suggestive and don’t trigger purely yes or no answers.  Below I’m presenting the remaining 6 techniques that ensure hiring success and help recruiters find the right person for the job.

3. Life-long learning

It’s essential to focus on the potential of the person.  Be very careful not to overlook the genuine talent in the crowd. Try not to recruit from the shopping list by rejecting the ones who do not meet certain criteria specified in the job post. What the candidate may lack in one skill he may make up for in another, even more important one. If the person is eager to learn and you are able to establish it during the interview you may take the risk and hire them. There is huge likelihood they will quickly make up for the knowledge gaps and adapt easily to new requirements. It’s essential to find out if the candidate still learns, is open to innovations, follows trends and is up to date with the new technologies. You may ask them:
How do you learn? How do you get access to knowledge? What would you like to learn in the next months? Which area are you interested in? Or which technologies that you already know would  you like to master? How would you like to develop in the next years? What is the career path you want to pursue? What  books about programming have you read recently?
These questions will reveal if the candidate is self-motivated to improve their knowledge.  They clearly show if we are facing someone who needs to be pressed by the employer or the specific demand on the job in order to educate further.

4.Ask them to criticize

Another great dialogue trigger that helps reveal the candidate’s personality and  attitudes on certain issues is asking them to point out advantages, disadvantages, weaknesses and strengths of certain technologies. Have them criticize something that they use on a daily basis. Sometimes it’s not enough to ask factual questions that only verify the knowledge of a technology. It’s more challenging to have them compare two programming languages for instance. It will also let you assess the level at which they were using a given technology.

5. What do you do when…?

As I mentioned earlier, open questions rule! Face them with an issue or a problem, a bug and have them solve it.You can also ask them to solve some small design problem. Being challenged with all these real life cases shows the thinking patter of the candidate, the logic they follow, what steps they take to achieve the goal. It also tests if the person can see things in a bigger picture and if they have enough creativity. they don’t even have to give the right answer, but the very fact that they try from different sides and don’t give up to easily proves something. Our candidates sometimes use the whiteboard and even though they might fail to find the solution it just sparks very interesting discussions.
You will be responsible for developing a webshop using JavaScript, which approach would you suggest to the client?

6. Code Sample or a short task

Instead of racking your head figuring out what actual knowledge the candidate may have it’s easier to ask for the code sample before the interview. Also sending a small task to work on may be useful. You can together review the code during or before the interview. You can analyze the coding style and design. Check the structure, terminology, consistency of the code and if the applicant sticks to all the good practices we follow. It allows you to assess their work more realistically and it is a perfect reference point for any discussion about the technology and choices the candidate made.

7. Social Skills Test

In my post about the importance of emotional intelligence at work I already mentioned a few times why this is a very much desired quality. Undoubtedly, all these social skills contribute to a better work atmosphere and make people feel more comfortable with each other. That’s why it’s absolutely essential not to ignore the part of the interview that focuses on relationships between people and behaviors. We need to  make sure that our people spend time at work with the ones that fit our work environment. It’s our job to establish what type of personality the candidate may have. Try to expose them to the core by asking for example:
How many people did you have in the team? How many of them did you cooperate most closely? What happened when there was a conflict over the choice of some technology, framework, time estimation, etc? How did you handle problems with the boss and other team members? Give an example of your support to other team members, of good cooperation or knowledge sharing. What do you do when a system you have been working on crashes at 17.00 while you are just about to leave and you have a long awaited doctor’s appointment?
These questions often reveals how assertive the person is and to what extent feels responsible for the project, also if he is capable of any extra effort for the sake of the project.

8. It’s a real person not a “candidate”

We need to remember that this is a “human being” sitting in front of us not just a “coder”. A human that will be sticking around for a some time once we hire them. Is this a person we would feel comfortable chatting with over coffee in the company kitchen? Is this someone we can can have a beer with at the pub after work?  Is this someone you would talk to in the outside work situation? They only way to answer the following questions is to find out who our candidates are, apart from being perfect coders and IT nerds 🙂 You may ask about their personal ambitions, interests, hobbies, and how they spend the free time away from the computer, if there is any left, obviously. There are many ways to “feel” the person. Everybody has their own secret techniques.  More personal questions is a very delicate matter and really depends on the person we are confronted with. Dear interviewers, we all know it’s hard to obtain all the information we need within just 1 hour. I hope the above tips will help next time you interview a developer. Feel free to share your experiences and describe techniques you use while interviewing. You can also discuss through Twitter via @GOYELLO