This is going to be a pretty interesting post. As of late, I have been consulted by a number of groups including OHR on what techniques I use to interview and hire programmers. Over time, I have built up a pretty good list of things to do. Back in the day when I was at Raytheon, we would hire anywhere from 80-100 engineers a year (during the good times). We received a large number of applicants fresh from college. One of my jobs was to help weed them out. How things worked there was, the director/manager would pick the candidates and then there would be three interviews with technical people. At the end of the day, we made a recommendation as to whether we would hire the person and why. Over time, the number of interviewers dropped down to two and in some cases it was just me. I remember one year, doing 68 interviews. Now that was sure a lot.
Anyways, back to the topic at hand, how do I interview a programmer? Well it starts with the resume of course. I will review that along with the application. You would be surprised but the application contains a wealth of information regarding job and salary history. Your goal as a manager or technical person is to fill the position with the best candidate. So take your time reviewing the information at hand before bringing the person in for an interview. One thing that I do and its really catching on at Penn State is require the candidate to bring in code samples. If a person says they can code in "C", then I would like to see what their version of "C" looks like. I consider it part of the candidate's portfolio. I even have my portfolio that I keep up to date, just in case things do not work out for me at Penn State.
So to recap where things are so far:
- Review the resume, cover letter and application
- Require code samples (a portfolio of sorts).
Now onto the actual interview. I usually bring one of my staff with me to conduct the interview. Its a good experience for them. I will start off the interview with the introductions, a little bit about the job and then we dive into the reason why we are here. My employee will ask his questions and I will ask my stock questions.
- What do you consider your strongest programming language and why?
- I ask the same thing for the operating system
- How do you go about solving problems?
- What software methodology do you use?
- How do you work within a team environment?
I always ask these questions and maybe a few others but those items are things that I care about the most. How does the candidate solve problems and team environment. One of my requirements that is sometime not met is that the candidate must provide the code sample before the interview. I do not want to waste an interview on someone whose code does not look like its something I do not want. Remember my statement about being proud of your code. I'm looking for that when I review a candidates code. And these days with tools like codefetch and Google code, you have to be careful about the candidate "stealing" code from someone else. Trust me that does happen. You have to look at the candidate's experience level and the complexity of their code sample. Even take the time to search the sites to see if you can find the code on-line.
Of course the standard rules do apply when you interview someone. Eye contact is important, along with how the candidate presents him/herself. Trust me you will get a gut feeling as to whether you want to hire the candidate. Trust your instincts and remember to check the references.
When i talked with OHR about this process for about two hours. They said, "great but what do you do when you do not have technical people at a campus to review the code?" That's a really good question. What do you do? Not only is this a problem for a campus, but also for departments too. Since we are central IT, we should provide a service where we could help these people. Not only them, but ourselves too. We want to make sure we hire the right candidates for our jobs.
Recent Comments