The Art of the Interview
Software Development August 1st, 2006I’m going to look at this from both sides of the table. I’ve had the opportunity to interview potential software developers, and all of us have been to at least one interview as a potential candidate. How do we prepare for an interview? What skills do we look for if we are interviewing someone?
I need a developer
Joel Spolsky has a great article on how to look at things from this perspective. I’ll touch on some of the points he makes in this article. He makes a point about coming to a decision, I agree with this 100%. You should know after the interview whether or not this person is a fit for your company. “They would do well, but just not in my group” is not an option. If you’re on the fence, then vote no. You need to be absolutely sure that the person you’re going to hire is a fit for the job. So we know that our goal is to make an absolute decision by the end of the interview…what things do we look at?
The first thing I look at are communication skills. It’s essential that the candidate be able to effectively communicate. If he / she has a hard time with this, it’s a strike in my book. Look, I know an interview is a high stress situation. I appreciate that. But there are going to be stressful situations that come up in the workplace too, so how a candidate performs in the interview is important. Another offshoot of this is that the candidate be interested in the company. I’ve interviewed people that had decent communication skills, but gave the impression that there were 500 other places that they would rather be. They were zoning out when we were going over what the company does, etc. Is this the kind of person you want to hire?
This one is important. MAKE THEM CODE SOMETHING. I usually do this on a white board, or even on paper, but you have to make them do something. It doesn’t have to be something earth shattering, but you have to know that they have the right skillset. I’ve come across a lot of people that can throw out the right buzzwords, and give the impression that they know what they are talking about, but their code is a disaster. I try to make this as low stress as I can. I’ll usually give them a task on par with what you are hiring for. For example, if you’re looking for an entry level developer, asking them to write a function to reverse a string is a fair thing to ask. I’ll even let them choose the language that they are the most comfortable with. They need to demonstrate the ability to write code. Small syntax errors don’t bother me, I want to be able to see that they have an understanding of the language, and have the ability to solve a problem. By the way, I’ve seen some string reversal functions that would make you cry…..it’s crazy.
Another thing to point out….people lie on their resume. Shocking isn’t it? Just because their resume says they know C# doesn’t mean anything. Ask questions that will prove to you that they actually know what they say they know. A lot of us can probably relate horror stories about this. I’ve seen people put down 5 years experience with HTML on their resume, and have to ask how a form works, and how to construct an HTML table. I have to believe that a few questions during the interview would have brought that out in the open.
When I interview someone, I’m looking for someone that is motivated. Do they like this stuff? Have they done any coding outside of the workplace? Have they taken a leadership role on any projects that they have worked on? I’m also looking for someone who has an interest in what the company does. If they have prepared ahead of time and have questions and / or comments about something the company does, that’s a plus to me. These sort of questions kind of round out the candidate for me.
I’ll wrap this part up by giving some examples of things not to ask. Don’t ask things that don’t matter. Does the fact that they are married or single have any bearing at all on the job? Why ask it then? Obviously stay away from any question that could be tied to discrimination. It’s illegal to discriminate against race, religion, sexual preference, etc. so stay away from that minefield. Remember, after the interview you need to be able to say yes or no. Make sure you ask the questions and get the information that allows you to do this!
I want a job
Now that we have a basic idea of how to conduct an interview, how about if we are going to an interview? Number one, wear a suit. I know, there are exceptions. I hear that places like Google are very casual, but as a general rule of thumb dress nicely. Next, do some research about where you are interviewing. Have a few questions about what they do ready. If you are interviewing for a web programming position, look at the source code for the company website. Does anything jump out at you that you could ask about or point out at the interview? It pays to show that you are interested in the company and have done a little homework.
Another big thing is to be on time. In fact, try to be a few minutes early. Nothing is more irritating than someone who can’t be on time for an interview. Not sure where exactly it is? Easy solution, drive there the night before so you know how long it takes to get there as well as how to find the place.
Be calm. Go over your resume, and be prepared to talk about what you put on there. If you’ve listed projects on there, be ready to talk about them. Be able to explain the project goals, your role on the project, etc. The information you put on the resume is probably what got you in the door, so be able to comfortably talk about it. This brings me to my next point. Don’t lie! It’s going to be exposed, and that will suck for you. I’ve actually had people try to justify this to me. They tell me they lie on an resume because it will get them in the door, and they will be able to take it from there. I don’t agree with this, your wasting everyone’s time if you can’t do what you say you can do.
I also approach an interview as something that goes 2 ways. The company has to sell to me why I should work there. This is a big decision, and it should be treated as such. If you get to do a “peer” interview, ask the people who interview you what they like about their job. Ask them what they don’t like. You need to be comfortable with the company to take the job.
So we’ve talked about intervieing from both sides of the table. I hope I was able to at least get you thinking about the process. If you have interview stories you want to share, by all means comment. Was their a question that really stood out to you in an interview that you had? Post that too!
August 3rd, 2006 at 12:15 am
I like what you wrote here. Some of it almost seems like common sense, but the weirdness some people display during interviews can be surprising. I disagree about wearing a suit though, my motto is to wear something dressy enough to show that I care, but I also need to be comfortable in it. The few times in my life that I’ve worn a suit, I’ve felt like such a tool that I have problems carrying myself in a confident manner.
Anyway, good stuff.