Hiring is a painful for small companies. Time is their most precious asset they constantly lack of. Looking for the right profile, selecting people and interviewing them takes an incredible amount of it for an uncertain result. Hours spent with people you won’t hire is wasted time, but you don’t know it before you meet them. But not allowing enough time to the recruitment process caused the death of too many companies.
A few years ago, I had the most terrible experience you can think of in recruiting. We had been looking for someone to help me managing the platform for months, but for some reasons, people did not rush to get the job. We eventually had 2 applicants who went through the management filters, and I had to interview them. If I was OK with one of them, he would meet my manager and get hired.
The interviews did not went bad, they did not went well either. To be honest, they did not went at all, but I was told to pick up one of the applicants and be happy with him. We had spent enough time searching, and we could not afford conducting more interviews. Would I have followed my guts, I would have kept working alone. I was right, and the whole experience was a catastrophe.
The next time I had to conduct a bunch of interviews, and it was out of question to do the same mistake twice.
When hiring someone, I try to answer 3 questions:
- Will that person fit the role (technically speaking)?
- Will she fit the company culture?
- Do I want to work with her?
2 and 3 are critical. Over the years, I’ve learnt to listen to my guts. If I feel like I don’t want to work with someone, I consider it a strong signal even though that person is technically excellent.
To ensure we meet both 1, 2 and 3 while maximizing time and efficiency, we’ve decided to conduct the interviews by pair. I would do a first technical interview with someone from the management. Then, when all lights green, the lead developer and the CTO would meat the applicant. Then, he would get his access to the final boss granted.
Dedicating 5 people out of 13 is a huge time investment. We dedicate 8 to 10 hours to people who reach the final stage.
If you’ve ever done pair programming, you can imagine how precious pairing for job interviews is. Pair programming is not about having someone to code and someone to point his mistakes and typos out. Pair programming is about having to different brains solving the same problem from 2 different point of views.
Driving an interview with someone from the management helps to solve the technical and human / cultural questions at the same time.
Having 2 different point of views is precious, and makes the interview easier. I once had someone explaining a challenging achievement as if it was as trivial as connecting the coffee machine to IRC. From a management point of view, it was a “blah”. From mine, I was more of a “wow, not bad”. Things would have been very different with 2 technical or 2 management people.
If 2 people out of 13 feel they want to work with that person and that she fits in the company’s culture, there are chances the next 2 agree as well. So, if none of them feel like they’ll get along with the applicant, there’s no need to continue.
Having one of the technical founders in step 2 helps answering the culture question. It also provides another point of view on the technical aspect while validating the « do I want to work with him? » question.
Then only the applicant meets the boss. It means he went through 4 filters, both technical, cultural and humans before the CEO gets involved. This is precious for saving time.
Writing that, I realize we setup a quite simple hiring workflow, full of
else and return. I guess it’s because we’re computer engineers, so setting up that process was quite natural for us.