Thoughts on Technical Interviews

This morning, I was invited to be a part of an interview panel for some candidates for openings we have in my workplace. There were five of us conducting an interview for technical positions. I've done this enough and seen enough facepalms in these interviews that I want to pass on some basic advice.

First, prepare for the interview. One of the first questions we ask is, "This position is a technical position supporting the CoolProduct product. What do you know about CoolProduct?" I'm always stunned by candidates who come in for an interview and say, "nothing" or "very little." Folks, if you're going to interview with a company, take the time to learn about that company! Go to their website and learn about their core business. If they're a public company, download their latest annual report from the SEC's website and read it. Know the top 3 or 4 issues that the company faces, where the majority of their revenue comes from, and what their current/future plans are. If you know you're interviewing in a specific department within that company, learn the basics of what that department is and what they do. Now, I know that this isn't always possible, but my team supports a product that is available for the public to purchase. You're shooting yourself in the foot if you come in to interview with me and you don't know anything about this product. One of the guys that's been on these interview panels always asked, "How did you prepare for this interview?" The number of candidates who harpoon themselves on this question is off the charts.

Second, beware of hubris. At the outset of these interviews, we ask candidates to self-assess on several technologies that are relevant to the position. We say, "On a scale of 1-10, how would you rate your skills with ....?" Be very careful of telling me that you're a 9 or a 10. Because if you tell me you're a 10 in, say, basic networking, I'm going to ask you some level 10 questions on basic networking. (Actually, that's probably not true. I probably don't know any level 10 questions on basic networking, but I'm still better than most and if I can't find a networking question that'll stump you, I'm damned impressed.) If you're a 10 in networking, you should be able to explain to me what an ARP packet is, how DNS poisoning works, what a MITM attack is,  why a DNS query would choose TCP over UDP, and how a TCP Sequence Number is used. If you don't know the answers to these questions, you're not an expert in basic networking. I think I'm pretty good with basic networking skills. I can read a network trace and use it to diagnose problems. I know the answers to most of those questions. But if you ask me how I'd rate myself on a scale of 1 to 10, I'd probably tell you that I'm a 7 or an 8. The thing is, the more I learn about networking, the more I realize how much there is to learn about networking. Unless you're a leading researcher publishing papers on a particular topic, you're probably not a 9 or a 10. If you self-assess as a 10 and can't answer questions that, in my book, are a 5 or a 6, you're sunk. On the other hand, if you tell me that you're a 6 but are able to dive into the really meaty technical questions and come up with good answers, you score points in my book because you not only know the topic, but you also recognize that you don't know EVERYTHING about the topic.

Lastly, in a technical interview, I'm more interested in HOW YOU THINK than in WHAT YOU KNOW. If I ask you a question and you don't know the answer, be honest and say, "I don't know." But then follow that up with something that tells me that you've got good thinking skills and that you're teachable. If I ask you, for example, what an error message means and you don't have a clue, say "I've never encountered that particular one before. But to solve it, I'd probably Google the exact text of the error messages for ideas. Knowing what little I do know about the product, I expect that many errors might stem from .... or ....." Even if your answer is dead wrong, if what you're telling me is logically reasonable, you've turned a negative into a positive for yourself. We can't all be experts at everything, and I realize that when I interview candidates. If I can find someone with a strong basic understanding of technology who shows an honest self-assessment and demonstrates logical, analytical thinking, I'm inclined to believe that person can learn the skills needed to succeed in the job for which s/he is being interviewed and am likely to give the hiring manager a thumbs up.

Naturally, I can't speak for everyone who's ever interviewed a candidate for a job, and there are going to be differing opinions. You're reading the opinion of one person and you are of course free to disagree with me. Constructive feedback in the comments is always welcome.

Okay, that was a different kind of post than I normally put up here. I apologize for the long silence; there have been things going on in life that have kept me away from the soldering iron. I got involved in local politics and was very busy through the Nov. 4 general election. Then the holidays and all the attending scheduling issues came up. I'm currently enrolled in a "Nanodegree" program on Udacity.com and am investing some time building my employment-related skills. And, of course, life in general always throws curve balls. I expect it'll be at least another month or two before I get back to tinkering. But I haven't abandoned my Maker side! I still have too many projects to actually do all of them, and I'm yearning to get back to having fun in the shop.