Hiring is broken on so many different levels, and it starts right there, at the job offer description. It then continues all the way down to the actual interview process.
I'd like to unfold here some prescriptions about how I think startups should hire.
Most jobs positions out there regarding the job role go like this "10 years experience in
job role, proven experience in
whatever the responsibilities are, high proficiency in
infinite technology set, already built successful
whatever, ability to work well in a team, exceptional references from previous companies"
When I read such things, here's what I read instead: "We're looking for a candidate who is: at least a
one time World Cup Champion,
two times FIFA World Cup awards winner,
best scorer of the season, proven ability to work well in a team, exceptional references from previous teams".
How many people are really a good fit for this position? Two, maybe three on Earth. The reality is that you're not going to get them.
If your company's job position looks like you're looking for unicorn you're doing it wrong and you'll never get what you're after.
If there's anyone else in the world that can come up with your same conclusions with the same degree of confidence, it means that there are enough data points to objectively say this is a great player. If that's the case, you and your startup won't be able to hire the player. Someone will steal him from you.
You have to go after people that aren't proven and you need to be really good at evaluating them with much less data points. In short, you need to be extremely good at forecasting.
Don't hire like FAANG companies, don't use their best practices, don't use their super oiled processes, don't play their same games with the same rules.
Google, Amazon, Netflix, Apple have thousands of candidates and might need an object baseline to judge them. You don't.
Google's interview best practices strictly focused on algorithms and data structure questions won't help you in your interview process. Amazon's bar-raiser won't help you either.
If you play their games when hiring people, you're going to lose every single battle.
Instead of relying on easy observable data points and measurable metrics (coding challenges, rankings, pedigrees and riddles) look for answers in non-measurable realms, in domains where there are fewer, if not none, data points, looks for areas that are not easy measurable, where there's no yet predefined scripts or manuals, and where new simple heuristics can win overpowered standardized common wisdom.
Here's what instead you should do in your hiring process, try to find an answer to these four questions:
- Can this candidate do the job?
- Will this candidate be motivated?
- Will this candidate get along with coworkers?
- What this candidate will be in three, six, twelve months from now?
Everything you ask and everything you do during the interview should have the ultimate object of augmenting the details of each one of those four questions.
Discover how do they deal with complexity? Don't do whiteboard coding on riddles or puzzles.
Learn how do they respond to real-world problems? Don't ask "Why are manhole covers round?" Who gives a shit to why are manhole covers round. Pair-program with them instead and learn how well they break blocks.
Don't ask questions that if you just happen to know the answer to, you're golden, and if you get stuck in a situation where you have to work something out on the fly, you can easily get stuck in a mental wedgie that makes you look like a complete moron.
Cut luck out of your system.
Ultimately, look for very-high-dimensional vectors, such as smartness, attitudes, motivation, dynamic learning, courage, that can't be easily tested or represented by a basis vector or on a scale.
While on the surface these may sound just contrarian, what most of these do is to optimize for something long term/less measurable where the incumbents are constrained by time and what can be measured.
That's where you discover talents, that's when you hire great people.