I don’t have much experience in interviewing software developers as yet but recently I was asked to do a few for one of the projects in my company. Now, after a few meetings with candidates, I want to share my thoughts on how to prepare for the tech talk, what questions to ask and how to draw conclusions from what you hear. I think that good preparation is the key to choosing the right candidate!
This is one of the most important tasks before the interview! First of all you have to know the position candidates will apply for well. Based on this, you can choose the range of topics to ask about.
Ok, so how should you prepare for the interview? First, you have to know what knowledge is necessary for the position you are interviewing for. Based on that, you can prepare specific questions, for example, if the position requires a deep knowledge of React/Redux you may want to ask about the React lifecycle, how to perform communication between components or what is the action creator in Redux.
Apart from technologies, the applicant would need knowledge of tools. Usually you should ask questions about automation tools (Grunt/Gulp – you can ask why Gulp is better ;-)). You can also check if they have experience with stuff like webpack or browserify. Questions about Git or other source control tools are also welcome.
Write down all these question ideas and don’t forget to check if you know the right answer 😉 When you ask a question you always have to know the answer!
Ok. Now, once you are well prepared, you can arrange the meeting (or ask HR for that). At the beginning, after introducing myself, I usually ask the candidates to tell me something about their latest projects – what technology they used, if they used git/webpack/gulp, if they made any unit tests (if so, what frameworks) and other technologies especially those which are required for the position you are interviewing for.
After they finish talking about projects they were involved in, you can ask them the questions formulated during the preparation process. Please don’t forget to give them the right answer if they don’t know it. The recruitment process should be a good, developing experience. And they should feel as if they are talking with someone who knows what they’re doing 😉
When you finish asking questions, it’s good to give them the possibility to ask you questions. Perhaps they would like to know something more about the project or your company.
Providing an opinion about the candidate
Ok, so this is how you can distinguish juniors from more experienced developers. But how to recognize a specialist? Well… I think you can tell from the way they talk about projects that they were involved in, about technology etc. If they talk about it with passion, conjure up interesting facts, are up to date with the latest changes in frameworks and are almost guessing the next question (e.g. you don’t have to additionally ask them what automation/build/test tool they use because they will say it themselves), you will probably know immediately that you are dealing with a senior developer. Of course you may ask them several technical questions but I’m sure they will know the answers…
I think that good preparation is the key to conducting a good interview. This may be a stressful experience for both of you so if you know what to ask and know the answers it will be easier for you and you will look like a person who knows what they doing.
This may also be helpful in drawing conclusions but I think the more experienced you are in interviewing, the more accurate your judgement will be.