Have been on both sides of a site reliability engineer interview, I have come to realize that interviewing is as much art as it is science. Although there are companies which have tried to make interviewing a numbers game, and to abstract out the human element, interviewing continues to be an imperfect process. Almost anything can go wrong in an interview, from both sides. From a companies perspective, you should not consider a candidate confirmed until he/she shows up for work on the first day. In this article, I list a general format that if adhered to, may prove to be useful for interviewing of software engineers, or site reliability engineers.
Once a candidate has been identified for a role, or has been “sourced” through different means such as LinkedIn, referrals, or otherwise, a recruiter should try to arrange to arrange a phone conversation with the candidate. Once a phone conversation has been arranged, start with the below steps.
– Over the phone, recruiter asks some basic technical questions, passing of which is mandatory. The recruiter also judges if the candidate is a good fit for the position based on experience and job description. In terms of what kind of technical questions a recruiter should ask, they should be limited to less than half a dozen, and should be straight forward, that do not require any technical expertise on the recruiter’s behalf. A few examples for a SRE (site reliability engineer) position can be “Which command do you use to view network traffic on a Linux host?”, “Describe the process of opening a TCP port on a Linux host”, “What is the difference between a hard link and a soft link on a filesystem?”.
– There may be a 45 minute or so technical phone interview with an engineer if a candidate passes the initial phone screen with the recruiter. In this technical phone interview, ask additional questions on various topics, such as networking, filesystems, Linux internals, processes, etc, to get a better idea of the candidates strenghts.
After a successfull technical phone interview, next step should be to schedule an onsite interview.
– Onsite interview is generally held by 4 or 5 engineers, and may be broken up in the following format:
* Unix/Linux system internals
* General troubleshooting questions
* Project management
* Scalable architecture
You should try to avoid having different folks ask the same question. You can also split the 5 interviews into a couple of days if you like. Try to avoid non-technical questions, you can guage other aspects of the person
From a companies perspective, below are some qualities you should look for in a candidate:
– Able to get things done
– Takes Initiative
– Solves Problems on their own
The question you should be asking yourself is “Is this an awesome person who I want to work with?”. The idea is to hire across the board with consistent standards. Your job is not to break the candidate, it is to try to figure out what he/she does best and where they are lacking in strength.
Before the interview starts, try to make the candidate comfortable. This may sound obvious, but it is not. I remember being in 5 hour interviews without a single break, feeling tired and thirsty and unable to concentrate. Give the candidate frequent breaks for hydration if needed. You want the candidate to bring out the best in a candidate, to do this:
– Come with some hints
– Give candidates with opportunities to success
– Your job is not to hand a test
– Don’t get stuck on a problem
– Make an interview enjoyable
– Don’t make a candidate feel misreable
– If they do not feel good, they won’t be a good referral
– Try to limit general questions, such as definitions, which can be easy to memorize and do not give an idea of depth of a topic.
– Start with easy questions, work you way to harder problems
– Don’t look for specific answers, as a question may have different valid answers
– Ask 2 or 3 questions
– One question is ok if it has multiple areas to dive into
Comparatively, not so good interview feedback is:
– Is generally incomplete
– Don’t include pictures of the candidate
Don’t ask about:
– Genetic info
– National origin
– Race and color
Asking questions about the above can result in legal complications. If candidate does not get hired, he may turn around and sue your company if you asking him/her about the above questions. He/she may claim that they did not get hired because they belong to a particular race or religion.
Limit questions on:
– Textbook knowledge questions
– Culture questions
– Communications questions
You can pick up on culture fit and communication questions based on the technical questions you ask.
Good Interview Feedback is factual. It should in the least:
– Lists your questions
– Lists the answers as given by the candidate
– Additionally, feedback should include analysis of the interviewer.
– Transcibe code
– Include a high level summary
– Evaluate culture fit
– Role level knowledge
– General cognitive ability
– Avoid audio, video recording
How do you conduct your interviews?