In the last year at my Job, I was fortunate that my organization asked me to Interview some candidates. But I am a noob and I didn't knew (I still don't) how to interview someone. So I read a bunch of online articles, talked with a lot of interviewers and during that research I took notes. And here I am making it public. Feel free to contribute your thoughts. Feel free to point out errors.
- Introduce yourself, make them confortable, you wan't to sell your organization, Be nice
- Don't try to prove that you are better than the candidate
- Candidates might not speak english very well but they can code, and otherwise 😁
- Don't focus on the answer, focus on the thought process
- Just ask questions and ask follow up questions
- Define earlier what are you looking in a candidate
- Take notes
- You can cut off redundant discussions
- Don't waste time on basic, stereotypical questions (Like, Tell me something about yourself?)
- Don't dominate the conversation
- Don't find a friend, find a candidate
- No Emotional attachments and decisions
- Check if this candidate is same or better than the current engineers on the same position?
Preparing as an interviewer
- Be on time. If late, apologise for being late.
- Don't have a bias (good or bad) for a particular candidate based on his resume/college/past companies etc.
- If someone else took an interview before you, don't ask whether the candidate was good or bad. Since that creates a bias too, only ask for list of questions asked before.
- Ensure you don't ask the same questions which the previous interviewers have asked. It is a bad experience for the candidate.
- Remember, you are representing the company in these interviews. The candidate will judge the company and the team based on this overall experience.
During the interview
-
Give a short intro about yourself first, tell him/her about the team and the challenging work we do here.
-
Be friendly with the candidate.
-
Start with a warm up question or something related to the candidate's resume. It helps the candidate get comfortable with you.
-
For phone interview, go through the candidate's resume and try to ask some questions related to his work so far. Example - if he/she has worked at Uber, then ask a question on location tracking etc. This is good to do because it allows the candidate to play on his/her strengths.
-
Always try to ask follow up questions and try to go as deep as possible. Asking short questions again and again seems like a college viva and it is not a good experience. Example - "How do we make searching in SQLite efficient?" Follow ups - "How are indexes implemented internally?", "What is a B-Tree?", "What is a height of a balanced B-tree?", "Is there any other DS that can be used to implement indexes?"
-
Your questions can also include some open ended questions like "What all happens behind the scenes when you enter a url in a browser?". Here, we can assess the breadth of the knowledge.
-
At the end, always ask the candidate if he/she has any questions for you.
Post interview (Feedback stage)
- It's okay for the candidate to not know some implementation details or things that can easily be googled. But fundamental knowledge of concepts is the most important.
- Apart from technical knowledge, also judge the candidate on soft skills - communication, leadership qualities, culture fit etc especially for a senior role.
- Write the positive and negative points for the candidate. Try to be as objective as possible here.
- The negative points can be useful to give feedback to the candidate in case he/she is rejected by the recruitment team. So just be mindful of that.
- If you're confused about whether to pass a candidate, it's most likely a no. If however, you think that you don't have enough data to judge the candidate fully, ask the recruiter if a re-interview is possible, it should be fine.