I have interviewed hundreds of candidates over the past few years, and tracked hundreds of other candidates as theyíve progressed through the interview process. Iíve noticed a couple of themes that have emerged. While the conclusions are not particular earth-shattering, I find them rather insightful in spite of their simplicity.
Rule #1: Hiring great software engineers is the single most-important thing you can do to maintain and grow the health of your software engineering organization.
Interviewing is a time-consuming process and can suck up a lot of time, especially if you are using your top engineers. However, do not be fooled into thinking that it will be more effective to have your average engineers do the hiring while your top engineers work on high-profile projects. In the short-term, you might accomplish more project work, but youíll be creating a problem that you may never dig out from underneath.
Rule #2: Use only your top-rated software engineers to interview software engineering candidates.
Regardless of the time and effort that is put into training your interviewers, the interviewer will ultimately hold a candidate to the same high or low standard that they hold themselves to as a software engineer.
If you want to hire a bunch of average software engineers, put your average software engineers in charge of interviewing. Itís very difficult for an average engineer to assess greatness in a potential candidate when they havenít been able to achieve greatness themselves.
Rule #3: Use senior engineers that have a wide ranging set of experiences for interviewing.
I have noticed that young engineers often donít have a large enough technical context to accurately assess the abilities of a senior level candidate. Even if this engineer is an amazing technologist, they often donít have a good enough grasp of the big picture to fully realize what things are important. While additional interview training does help them, it still doesnít compare to the seasoning of a senior engineer who has experienced a wide ranging set of technologies, practices, and concepts.
Additionally, senior engineers have worked with a wider variety of other engineers. Because of this experience, they are much better at recognizing correlations and similarities between various top-performing engineers that they have worked with in different stages of their career. They can use these experiences to compare incoming candidates to the top-performing software engineers that theyíve worked with in the past. Additionally, since they are also one of a hand-picked group of high-performing engineers, they will also hold the candidate to the same high standard that they hold themselves to.
Rule #4: Use only software engineers that are passionate about the hiring process to conduct interviews.
If you have software engineers that view interviewing as a burden and a chore, remove them from your interview panel. You will never get the proper level of commitment and seriousness that you need for the incredibly important task of hiring. Even if the individual is one of your top software engineers, if they lack commitment or interest, they are not going to expend the effort necessary to do a great job.
As an organization, you need to remember that the hiring process is an investment that will pay dividends if you expend the time and effort to do it right. If you do it wrong, youíll end up paying the cost forever.