When we interview potential developers to join our team, we want to be mindful of how we use their time and how we treat them – we want to learn as much as we can about people, whilst giving them the best experience possible.
- Be friendly – this person could be your colleague.
- Assume they are competent and it is your job to help them demonstrate that.
- Prepare – know what questions you are going to ask, have more than you think you need.
- Leave (or make) time for them to ask you any questions they have for you.
- Look for understanding rather than specific words (this is especially important when interviewing people in their second language).
- Send in your feedback promptly.
- Be mindful of potential bias in feedback – talk to your hiring manager if you are not sure if something is / should be relevant.
- Consider that if they have a different perspective from you that can be a really good thing.
- Practice! Ask one of your colleagues to pretend to be your “interview candidate” and get feedback on how you did.
- Ask personal questions (it’s OK if they volunteer information, but move on from the subject).
- Be confrontational – this is not a battle.
- Ask questions requiring esoteric technical detail.
Here’s a list of few questions to prepare yourself when interviewing technical camdidates
Initial technical question
Please describe the lifecycle of a web request going from the browser back to the browser.
Expect the candidate to understand what a web request is, the concepts of DNS, ips, web server/app dispatch. Often candidates with less experience see the web app as a black box and can’t really explain routing and template/response rendering as well as returned responses.
Pay attention to the level at which the candidate starts, based on that, ask them to go deeper or shallower and see how comfortable they can explain technical concepts. Don’t try to trick them, but listen to the vocabulary they use as well as their comfort level. Do they go in the nitty-gritty details of what happens inside the trackpad when pressure is detected or do they skip entirely the request processing when it hits an application server.
Follow up technical question
Let’s pretend our web app is now getting a lot of traffic, how can we handle more loads, ideally without increasing cost?
Expect the candidate to **** understand the concepts of caching and load balancing.
Make sure to bring up HTTP caching and make them explain how it works, if they worked with it, dig a little around status codes etc.. Bonus points if they understand and can explain pro/cons of HTTP/2. If they bring up technologies such as memcached, varnish, squid or other caching solutions, ask them about pros/cons.
Pay attention to how they react when they get to a place they don’t know. For instance don’t hesitate to ask about HTTP/2 push and how the headers are different than HTTP 1.1 or if they know that, ask about DNS load balancing or whatever they might not know. Check if the candidate is defensive or interested in learning during the interview. Do they feel bad or curious. Don’t push too hard but get a sense of how you might interact with them when they are faced to something they don’t know yet. After all, the goal is for the candidate to become your coworker.
Understand the candidate technical world view
What’s the hardest technical problem you ever solved? Why was it so hard, what did you learn?
No specific expectations, listen and try to understand how the candidate shares a hard moment and talk about something you have little context about. As a few questions to see how they respond to you digging a little in a potentially hard memory. Imagine you are sitting with this candidate in a post-mortem. Is their answer helping the team move forward?
Pay attention to see if they bring up a hard technical problem or a difficult to debug the situation. Can they explain in depth what the problem was, did they learn anything? Think about the role you are hiring for and how you’d be expected to answer the same question.
There aren’t any magical recipes for a good technical interview. As an interviewer, you should certainly be well prepared and your team and you must have defined the kind of profile you are interested in hiring for. Stackraft for companies helps you be good at creating a job post and assessing a candidate. Too often, the interviewer is looking for a candidate matching their interests and values. They are looking for a clone and that’s usually a bad idea. Sharing the same philosophy around how to tackle technical problems is critical but you also want diverse skillsets and perspectives. Having a discussion with your team about why you think the candidate will do well and what kind of assistance they will need should also really help you make a decision quickly.