Articles talking about the importance of finding the right co-founder for a company are a dime a dozen. Finding a co-founder is the very first hiring decision a business has to make, it may actually have happened before anybody realises a business exists. And there seems to be a general consensus that the founding team can ultimately make or break a new business, so it's an incredibly important decision.
Something people don't seem to state so categorically though is: When does hiring become less important? Well, it really never changes. You may have less need for that visionary figure but a bad hire can be incredibly damaging to a business of any size. I've worked at a number of places over the past 15 years both as an employee and as a freelancer/contractor. I've seen many different ways companies go about the process of growing and it feels like where I am at Heroku has the closest to a consolidation of best practices I've come across yet.
There's usually an unnatural power dynamic that occurs in the job interview process. Most commonly it's that the employer has most of the power: there is one job, multiple candidates, they get to pick one. Occasionally the balance of power swings the other way, people with a particular skill are in short supply and demand is high. Both of these situations lead to people reacting to short-term pressures and that's never aligned with the longer term success of the company or the individual.
Something Adam Wiggins stressed to me early on was to treat the whole process more like it was dating than a job interview. It needs to be a mutual appraisal, both parties trying to gauge the suitability of each other and whether this is going to work as a long-term relationship. Not just "could this person do the job?" but "is this the kind of company and team I want to work with for the next 2 years? Will they help me be who I want to be?".
An integral part of levelling the power imbalance is treating each other with mutual respect. It can seem obvious, but so much of the regular interview processes is disrespectful of a candidate's time. It's tempting to get someone to come in for an interview, it feels formal and official and like you're being serious. Except as an interviewer it's costing you 30–60mins of your time, meanwhile it's costing the candidate that time plus the extra time they allowed to give a good impression by being early plus the transit time to get them to your office from wherever they're meant to be instead. In all likelihood their time commitment to that one interview was probably 2X what the interviewer had to commit.
It starts with screening, a lot of screening. I operate on a number of assumptions when someone sends in an application for a job:
They've spent 5–10mins reading the job spec
They've spent at least 10mins learning what Heroku does
They've spent at least 10mins making minor tweaks to the CV or cover letter to make it relevant to the advertised job
Those are not all always true, but I'll give everyone the benefit of the doubt. Most have probably spent countless hours actually using Heroku. So the very least I do with every application is invest 30mins reviewing it and seeing what I can learn, it's the very least the candidate has committed so far. Reading an application usually only takes a few minutes so most of the time will actually be spent trawling the internet. GitHub, LinkedIn, Twitter, personal blogs, conferences they've attended/spoken at, finding out what kind of things their previous employers do, etc.
For those that get short-listed it's then a phone call, always. Even if the candidate is in the building next door, it's a call. It's time-boxed to a hard 30mins and I reinforce upfront the dating type nature of the process, I want to be getting asked questions too. What do they care about? Why are the changing jobs? What do they need to know about me and/or Heroku to understand if we're the best place to help them achieve that? The 30min limit helps keep the conversation focused and makes us both prioritize what we want to talk about.
And the call will happen at the agreed time, no later. Nothing is more important than hiring the right people and making sure we don't hire the wrong people. Writing code can wait, that other meeting that is about to run over can resume later. And I'm not about to send a message to someone potentially so important to my own success that I don't value their time.
We'll do at least 3 of those phone calls with different people within the company before we get someone into the office. It's amazing how much insight you can gain into their previous experience, technical aptitude, and ambitions from a few really focussed conversations. The total time commitment from the candidate at this point is somewhere around 1.5 hours, so the same as if they'd come into the office for a single interview. Yet we have a far deeper understanding of each other and what we're looking for.
After all the Googling and all the phone calls, we're usually left with only a couple of people where it still feels right and so next comes a starter project. To extend the (already strained?) dating analogy, this would be introducing our date to our friends or family. It's getting serious, we think it's good, but we're not proposing just yet.
This is where the time investment for everyone really ramps up. It's 3 days working full-time with the team, on a real project, exactly as we ordinarily would. So we have a quick planning session, look at our backlog, agree on something we could ship within 3 days, and then make it happen. It's the ultimate test to whether the candidate has the skills to do what we need, if can we work together effectively as a team, and if Heroku can provide the environment to help the candidate prosper and achieve their own goals. And sometimes the answer is no. We've had people work with us where technically everything clicked but the candidate decided it just wasn't quite the right fit. That is both an unfortunate and amazing outcome. Far better to have learnt that after 3 days where we can all walk away friends than in 6 months. Employers all too often forget that changing jobs is a pretty big and potentially life-changing event. For all of the excitement of a new job, maybe a new city, and maybe a pay rise comes the uncertainty associated with "is this going to work out?", a new expensive lease, having to build a new social group, the credit and health insurance implications of changing employers. When things go well it's great, but it's not completely risk free. Investing as much time as possible upfront to reduce that risk for everyone pays off in the long run.
The staff turnover rate at Heroku is the lowest of any company I've ever worked at. People have left, but not many. People have been fired, but not many. I've always had ethical problems with companies that take a hire quick/fire quick approach, it feels lazy and disrespectful to the employee. It treats people as though they are fungible assets and usually means nobody is stopping to address the failings in your hiring process that lead to you hiring the wrong person in the first place. People deserve to be treated better than that.
I just did some rough calculations based on the last role I hired for at Heroku. Given the high number of applicants, all the screening calls, a few starter projects it came out to a collective investment from me and my team of 110 hours over 4 months to hire 1 person. Almost 3 weeks of full-time person effort. But this is a long game and I want someone who is going to help me, my team, and Heroku be even better in 2 years.
So why wouldn't you have someone spend 3 weeks focussed on the most important thing for success?