If you are the person giving the technical interview you’ve got a couple of jobs on your hands. First is the most obvious, to gauge the technical skills of the person sitting in front of you. The second is to see if the technical skills that they are presenting to you are actually their own, or if someone has coached them to get past your technical interview. The third is to see if they’ll be a good person to fit on your team.
Gauging Their Technical Chops
This is the most obvious thing that needs to be done, as this is the whole reason that they are there sitting in front of you. You need to make sure that what’s written on their resume is actually what they know. Before you start giving them the third degree, make sure that the resume that you have is actually the correct one. Often recruiters will make some slight adjustments to the person’s resume so that the experience listed more closely matches your job requirements. They are doing this because they don’t get paid unless you hire their client, and the only way that’s going to happen is if their client matches the requirements on your post posting.
Once the person in front of you has said yep, that’s mine or they’ve given you a corrected one (I always bring a couple of copies with me just in case) the grilling can start. Start by asking some basic questions about everything listed on their resume that they know about. It’s OK if you jump around, it’ll make them think more and you’ll get more realistic answers from them. For things that they say they are an expert level on, dig into those topics. Ask crazy obscure stuff if needed, really see how well they know it. I like asking people to rate themselves on a 10 point scale on various topics. Also ask them how their co-workers would rate them on the topics. If you are sitting in front of me, and you tell me that you are a 9 out of 10 on index tuning, you had better at least know who Kimberly Tripp is (being able to name her favorite food and the name of her company is some bonus points). You also better know some pretty good information about the B-Tree structure that SQL Server uses, how SQL navigates the tree, etc.
Some people believe that they need to ask the exact same questions to every person that they interview, and this isn’t true. Every interview should be customized for the person that you are talking to.
Are they blowing smoke up your back side?
Depending on how well someone was coached this can be a bit harder. The deeper you dig into a topic the easier it’ll be. If they have to sit a think for a minute for each answer, that’s probably a sign that they don’t know the answer. If they take a kind of wandering path to the answer they probably know it on their own, they just need to find it in there. If they can only answer the basic questions on anything you ask, they were probably coached (see my point above about asking them if the resume you have is correct). Let them know that not knowing a few answers is OK. Not everyone knows everything about everything in SQL Server. If they say that they do they are lying.
One thing to note, is that if they just get up and leave they probably figured out that you’ve figured out that they don’t know squat.
Are they are good fit for your team
Once you’ve figured out if they are a good technical fit for your company, you need to see if they will be a good social fit for your team. Get the team (or some of the team) together with the person and just chat and see how it goes. The talk can be about the weather, sports (yuck), food, SQL, what ever, as long as HR isn’t going to fire anyone for the topic at hand (the smoking hot receptionist probably isn’t the best topic). Someone could be the best technical person ever, but if they aren’t a good social fit with the team, there is going to be some major friction at some point and that isn’t going to serve anyone at all. Now I’m not saying that you need to be best friends with this person from day one, but you need to be able to fight, argue and agree with each other without coming to blows and without anyone’s ego getting to bruised. This is especially true of junior and senior level people. Junior level people need to be able to take criticism without wanting to quit or kill you, and senior level people need to be able to have people ask them questions without feeling the need to kill everyone in the room.
Hiring a specialist without having a specialist around
One of the problems that I’ve seen a lot of companies have when it comes to hiring new staff, if that they don’t have a specialist in that field that can conduct a really good interview. For example, it takes a knowledgeable VMware person to interview a VMware admin candidate, just like it takes a knowledgeable Windows admin to interview Windows admin candidates. For times like this it might be good to bring in a person from the outside that can be trusted to conduct the technical interview. Paying for a few hours of a senior consultants time to do the technical part of the interview can safe you a lot of time and money if you bring the wrong person on. You want someone who is going to conduct the actual interview. A pre-written set of questions isn’t going to help you out much. A proper interview needs to be a fluid conversation not just a caned set of questions.
While this outside person doesn’t necessarily know the specifics of your shop, you can give them the run down pretty quickly about the technology that you have, the problems you’ve faced, and they can craft this into an interview when talking to the candidates. For the record, I am more than happy to help out with this if you need a hand, just drop me an email.