Recently I was dialoguing with another company here in the Rocky Mountain West, and they asked how we go about attracting and hiring top talent with technical capabilities. This led me to reflect over the holiday period. What are the most important areas to cover in an interview? What values are we looking for in the candidates that we hire? We have a tendency to have thorough interviews: it is easier to scrub hard than to have to deal with problems later. It is also important to interview in a way that is fair, and provides the candidate with an opportunity to shine. An interview is a mutual "get to know you" meeting. I want to learn if this person is a good fit for our team, and they want to learn if our team is a good fit for them. Here are the top four qualities that I look for in a technical interview.
Honesty. It is shocking to me the number of people with resumes that claim experience that they simply don't have, and then try to bluff their way through an interview. This is never a good way to begin (for the candidate) and rarely a good fit (for our organization). I suspect that sometimes this is done to get through the way that our industry finds candidates (using databases and buzz-words), however, it is disturbing to me the number of candidates who try to bluff their way through the interview as well. To help sort through this basic test, our interviews need to find an area of technical commonality and then explore it jointly to see what the candidate knows. More often than not this ends up measuring the honesty of the person. If they can't be truthful, then we stop immediately because great teams cannot be built on deceit.
Experience. Another tangent to honesty is to speak with a candidate about their experience - taking care to be sensitive to any proprietary nature of the solution that they built. This is often a good lead-in to exploring their technical capabilities. What was the essence of the problem? What was their solution? What mistakes did they make? Experience is an excellent way to allow the candidate to shine - what work are they proud of and why. Breadth of experience is valuable - it is like a reservoir that engineers can draw from when confronting new problems and it is good to assess their reserves.
Can they swim? Often times we will throw a technical problem at a candidate in order to learn how they handle pressure and change. Our experience of developing real-world software has taught us that we will face this with our customers, and so it is good to see how an individual can handle solving a problem and responding to changing conditions and situations. Candidates will either sink or swim in this environment. We like to keep the swimmers - because they have a passion for thriving.
Creativity. How do they think? How do they approach solving problems? Classical education in software engineering provides approaches to solving problems however it does not teach thinking and creativity. To assess this we use problem solving challenges and observe how a candidate tackles a problem. Do they take initiative and set a path or do they need a path laid out for them? How do they handle failure - will they assign blame or take responsibility? Are they self-critical? Do they learn from failed approaches? How do they adapt to change: are they brittle or flexible? What experience from their past do they bring to bear on the problem space? Do they make good or poor choices? Creativity is often the secret sauce that finds the innovative solution.
Experience has shown that we have a pretty high success rate in finding and hiring high-caliber people. I think that our approach to interviewing is part of that success. Given that, I am still curious to learn what your priorities are for interviewing? What are the values that you prize in a candidate and what interviewing techniques do you find successful?