|
I am new to the interviewing thing and wanted some advice about how to interview programmers? |
|
As you start hiring, the organism that is the enterprise starts growing and gaining a culture of its own. At the beginning, the influence of a single hire on the culture of the enterprise is huge. Think: "How will this person shape the culture of the company?" As the enterprise grows, you want to make sure that the people you hire fit in the culture that is starting to form. The interview group: Several people should conduct interviews. When possible, let this be the same group of people. Any member of the interview group should have veto power. When possible, the interview group should include non-techies who are more customer or market facing. The steps of the interview process: The process we adopt is the following: 1) Reviewing resumes. 2) Phone interviews. 3) In person interviews (round 1). 4) In person interviews (round 2 if needed) and tests. 5) Final sanity check (phone chat) before making an offer. Tests: We have developed standardized tests that all applicants take. Tests could vary based on the seniority of the position. The tests include: design sections (very important!), code writing sections, and database sections. We usually leave the test until the last round of interviews and use it as a tie breaker. There is a grading system for the tests that allows for quick elimination of low scoring candidates. For the high scoring group, a deeper dive into the results of the tests is needed. Never settle for mediocre developers! Comparing applicants: As you hire your first few developers, you will naturally compare interviewees to each other and aim for the best. Once you have gone through this process a few times, it becomes inefficient to always wait until you have a large enough sample for comparison. At this stage, you should start comparing to people that you have already hired. You will know a good developer when you meet one. Communication
Never compromise on communication.
All developers should be able to communicate, verbally and in writing. And no! communicating in Java does not count. |
|
All the comments are great. To add I wanted to share my evaluation criteria. It is always good to have one so you know if your interview roster is missed something.
|
|
I really like jean- claude's answer and I would like to add one thing to it. You have a probation period, use it not just to evaluate but to mentor too. It is a great opportunity to really get to know people and whether they are really technically competant, work well with the team, are integrating into the corporate culture ...etc. And if they dont fit in dont be afraid to have that conversation early on and let them go if they dont fit. The worst thing to do is to keep someone on post probation if they are not working out! |
|
Sure.. Generally you want to focus on two things: 1. Technical skills 2. Behavioral skills In the technical part, I like to give them a technical problem to solve, and I try to test them in the area that I will be expecting them to work on. If you are looking for a DBA, have him write a complex SQL statement, if you are looking for a web developer, have him write a piece of code and through some Ajax requirements in there :) The behavioral part is tricky, especially with programmers, because they are usually not the best people in interpersonal communications (sorry for my geek friends, this is just a stereotype). But, you want to make sure that they can work in a team, they are organized, can handle startup pressure, and most important of all, have a good attitude. By the way, can I apply for the job :) |
|
I would recommend reading Joel Spolsky's "Smart and gets things done" (look it up on Amazon) As well as this essay: http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html |
|
a great article that cover many issues on How to Hire Programmers: http://www.aaronsw.com/weblog/hiring |

