NITI in Retrospect: Don't need to advertise for employees
For most big companies, like Google or Microsoft or Amazon or Apple, all your hiring problems come down to finding good enough people as fast as you want to hire them. It's hard work! Some of them hire hundreds of programmers a month. They have lots of clever ways of sorting through that, and it's surprisingly effective. Meanwhile, oddly, much smaller companies have just as much trouble, or worse, hiring just one person every month or two or longer. That's because at least everybody recognizes Amazon and Google; if you're a student looking for a job after you graduate, you probably apply to those two by default, because you probably even know someone who works there who'll get a bonus if you get hired. But with a tiny company, it's unlikely that you know anyone there, and it's unlikely you've heard of them yourself, so unless they're really special, you simply won't think to apply.
In my youthful naivety, I never really considered that this might be a problem for a tiny startup like NITI, and miraculously, it wasn't. Some of the best people available realized they wanted to work at NITI, and the best people know the other best people, and they tell their friends. That's the point of this post. The other point of this post is that as time went on, it became a problem, because NITI became a less desirable working environment. The easy supply of great workers dried up, because the best people didn't want to work at NITI, and the best people know the other best people, and they tell their friends.
Ironically, I wouldn't even have known I was doing something right if we hadn't then proceeded to do it wrong and learn the consequences.
Here's my advice: if you're a small company, you should never need to advertise on monster.ca. This is not to say that you can't find good employees on a job site, but you're counting on luck, and worse, the luck is biased against you. The best people go work where their friends, the other best people, tell them to go work. They don't need the job sites. If you go there, you'll only find the people who do.
How do you avoid needing to advertise? - Rely on word-of-mouth. - Hire co-op students: they have a huge word-of-mouth network, they're cheap, and you get rapid, honest, continuous feedback about your working environment. - Hire at a steady pace, not in bursts. If you need to hire a bunch of people all at once for a specific project, you're doing it wrong. - Be the kind of place where the best people are so proud to work that they brag to their friends. - Be the kind of place where people would be ashamed to recommend their friends to you if their friends aren't awesome enough. - Take recommendations from employees extremely seriously compared to outside applicants.
I thought of giving more specific advice, but that misses the point. I can't tell you how to make your company a place where the best people are proud to work; I can't even tell you who the "best" people are, because it's pretty subjective. But I know that a certain kind of people loved to work for us, and a certain kind of people hated it. I'm not sorry about the latter group; they didn't fit, and everyone knew it, and a self-selecting environment just makes the best people that much more proud to work with you.
As for me, I just did what felt right. I built an environment where I would want to work, and hoped that awesome people are sufficiently like me. That technique works pretty well. If you're not awesome, you probably shouldn't be starting a company anyway.
Disclaimer: This essay is about the NITI-Montreal office, which is now closed. I can't speak for the experiences of the NITI-Toronto office. It seems they aren't having too much trouble finding employees, which is good news, but they're a different kind of employees than we had in Montreal. Better or worse? I'm not qualified to say.
ssh+2FA to all your machines, anywhere, without opening firewall ports.