A friend of mine asked me if he could seek advice on hiring. He had two great software engineers in the final stage and he was having trouble deciding between them. He wanted to understand my heuristics for hiring and see if these were aligned with his - they weren’t.
The first thing I told him was that if one is between two candidates, then truly it doesn’t matter which they pick. Whatever the choice, it will be good. At this point their gut feeling kicks in. Something deep inside will tend to one of the candidates. His answer to this was good. Because we might be discarding valuable data about the candidates and replacing it with our gut feeling. This is a fair comment.
For small companies (up until ~6 engineers), the focus should be on a candidate’s ability to get things done independently. The new engineer will have a ramp-up period, that’s expected. But it should be minimal. In less than a month, they should be up and running with close to zero supervision. When hiring - specially in a small company - you want to maximise your outcomes. You want people that can take ownership of initiatives and lead them. Hiring someone that will drag a productive engineer is a killing blow to a small company. If both candidates are capable, independent engineers, my second priority is drive. Drive is what allows someone to keep going, when things are grim. It’s also what might make someone go to their laptop on a Friday at 11PM and help fix a P0. The community at large will frown at what I wrote, but that’s the reality of small, scrappy companies. Shit happens, someone has to fix it - independently of the hours. I am also a believer that drive beats technical ability. A sufficiently motivated engineer will outperform a more technical engineer in the medium to long term.
Upskilling an engineer in a small company can work, but can be challenging. It depends on the amount of work, environment and if they have a mentor that is able to spend 30 to 60% of their time with them. It’s tough.