Hiring Mental Model

This is my mental model for hiring people into an established organization. TLDR: it’s about the courtship, how well the individuals career story fits with the opportunity, and overcoming uncertainty]

Philosophy and Principles

  • The goal is multivariate optimization: the multi-year experience of the person you’re trying to hire; the teams future experience with the addition of this person; and the company. Each has different goals and agendas, but all must be net-positive to proceed.
  • To hire or not is a decision weighed by the inputs above.
  • Hiring doesn’t stop at the signature. It’s your job to ensure the smoothest possible transition for the individual into the collective team. This is a many month process.
  • The act of hiring is about courtship. Invest about the same amount of energy into it, as you did when you courted a partner.

Assessment of Requirement

Before hiring anyone, you’ll need a view on:

  • What kinds of problem(s) is this team trying to solve? How complex are the problems? How certain are the solutions?
  • What is missing from the composition of the team that is preventing this team from solving these problems?
  • Does adding someone extra increase or decrease the velocity, strengths, and social capital of the team?
  • When this problem is solved, what expectation do you have of where this extra person will move next?
  • Assuming you can’t get all of what you want, what are you willing to compromise on? And how will you hedge against that compromise?

We care a lot about the composition of people, their personalities, skills, growth potential. An analogous real-world example would be managing a baseball team: individuals optimize for a particular position, and the general managers job is to figure out what composition of players will best likely achieve the outcome of winning a world series.

For software teams, positions are ill-defined (there’s no ‘first baseman’ classification for example), so composition is largely left to ‘feel’, but the kinds of skills you’d look for include:

  • Leadership: how able is the person to lead from the front when things get hard/uncertain
  • Social lubrication: how social/close is the team, and how able is this person to provide social lubrication
  • Technical capability: skills based, solved similar problems before
  • Predictor of the future: able to see multiple years in the future
  • Shit shoveller: there to learn, gain skills and grow. Willing to do less leveraged work
  • Server: able to collaborate and serve others (customers etc).
  • Naysayer: focused on exposing and hedging risk.
  • … and so on.

Team Strengths and Weaknesses

Teams can be thought of like individuals:

  • They have strengths and weaknesses
  • They have a dominant/default personality
  • They have a memory
  • They have wants and needs that are required to be satisfied

Often when you think about adding a new team member, you must also consider how you want this teams personality, strengths, etc, to evolve and grow to have the best chance of solving the problems they work on.

Adding a new person is a chance to nudge that evolution in a particular direction.

Team Social Capital

Assess your teams social capital (i.e. the measure of influence, gravitas, previous impact, goodwill, etc). Understand what social capital may be needed to solve the problem. Ensure that the individual you are hiring has the maximum impact on that measure.

As an example: a large new language project at a FAANG I worked at (a gradual type checker, that required all code be migrated to a new format) required a team with significant social capital so that partnerships with teams to do migrations had a higher level of ‘default trust’ - (i.e “that team is great, full of rockstars, happy to work with them”).

Build a strong relationship with your recruiting partners

A symbiotic relationship with your recruiter is necessary to pull off all the steps below. They have a deeper level of experience, can often provide ‘wing-person’ type views on how things are going, can be a neutral sounding board for the candidate, and will often perform a lot of the actions below.

Generating the Pipeline of Candidates

This mental model will focus on the hardest hiring job, which is finding and landing rare candidates who are in high demand. This requires a higher touch courtship.

Finding these people is generally easy:

  • Ask existing team members
  • Ask your existing network
  • Trawl LinkedIn
  • Find papers written in the domain, look at the Authors
  • Find references within those papers, look at those authors.
  • Trawl the authors LinkedIn network
  • Look at Github projects within that domain, find contributor names.
  • Look at previous conferences in the domain, generate list of speaker names.

Most other competent recruiters and engineering managers are doing the same thing, so here’s a few alternative strategies:

  • Find non-English speaking people on your teams and ask them to do the same thing above in their native language/country.
  • Find analogous industries where similar first principle skills apply and can be transferred (i.e. Physics -> Machine Learning, Finance -> Data Science etc). Perform procedure above.

Ensure pipeline is primed with diversity, given it’s an underlying team composition optimization.


For-each candidate generated above:

  • Assess best engagement strategy:
    • E-mail reach out (poor)
    • Bump into person at conference (better)
    • Find mutual connection, ask for introduction
    • Find mutual connection, ask them to engage in the hiring process
    • Find problem that leads to mutual engagement (perhaps collaborating with them on their current project/problem)
    • Offer status/social capital engagement: speaking slot at conference, committee seat, consulting engagement
    • Offer “too good to refuse” social engagement: data center tour, meet and greet with high-status individuals who work at your company.

The goals for the early phase of the engagement is multi-fold:

  • Understand where they’re at with their current position/career. Important to assess timing of engagement.
  • Understand what they care about, what they’re optimizing for in their careers/life.
  • Discovering the ‘hidden variables’ in what they care about. Maybe they really love their manager, or they secretly hate your company. Variables that aren’t typically talked about in general conversation.
  • Once ready, move them into ‘curious’ mode. Curious about you, curious about the team, curious about the company.

Anti-Patterns for engagement:

  • Getting the timing wrong. Pushing too hard too early will likely force the candidate to disengage early to end any obligation they feel to respond.
  • Not deeply understanding what the candidate is likely optimizing for. Not enough time spent listening.
  • Missing a key hidden variable: perhaps the key decision maker in deciding to interview/sign the offer is the candidates partner/family, rather than the candidate themselves.
  • Being seen as overly optimizing for your own agenda/outcome.
  • Not building enough trust and rapport.
  • Overestimating your own social capital (i.e. an M1 trying to hire a Director).


We need to transition curiosity into exploration. i.e. the candidate investing energy into exploring what might be possible — an alternative simulation of the next few years of their life and career.

Assuming you’ve listened carefully to what the candidate wants, you want to balance and emphasize a few things during this phase:

  • Help them explore but don’t overwhelm.
  • Give options for exploration (different roles, different teams), but not too many. Offer exploratory chats with other leaders (ensure high social capital engagement).
  • Try and position your role as “neutral shepherd”- you have a bias to land them in your team, but want what’s best for them and their family.
  • Hand hold the candidate through the exploration
  • Emphasize your own simulation of their story for a given role/team option.
  • Help them build a rich simulation for themselves of how their story will look for a given option. This requires a lot of Socratic method to draw out what they care about and what their current unmet needs are in their current role, and how these needs will be met with this option.
  • Be consistent, clear and present. Respond quickly, explain all the details.

The goal of exploration is to overcome the activation energy required to prepare for, and perform an interview. That’s it. Period. Activation energy might include overcoming fear that they’ll fail, in which case you might need to work through those issues with them too.

Anti-patterns for Exploration:

  • Overly focusing on things that do not include the candidate as part of the narrative: i.e. “we need to solve big problem X for the company”, instead of saying “we have an open role in team Y that will contribute skills Z to the team to help them solve problem X which will lead to result A. Given what we’ve talked about, I think you might do great things because of A, B, C. There’s plenty of growth opportunities in that role too, which we can talk about if you like”.
  • Remember, it’s all about the candidates story not yours.
  • If you can’t answer the question: “why would this candidate want to join this team?” then you haven’t done enough homework in Courtship.

Interview Preperation

Make sure the candidate fucking prepares. Do what you can to give them the best simulation of what the interview will be like, and what’s required of them.

Offer Stage

This is the most difficult part of the process, because there are so many hidden variables, and likely many things out of your control (compensation etc). The goal here is being an invisible hand of persuation.

The goals are as follows:

  • Figure out, or infer, as many hidden variables as possible, and neutralize them.
  • Get the candidate to be focused on things that matter in their decision making, and to ignore things that don’t matter.
  • Increase their certainty in their simulation of working here, and working with you/your team
  • Tie and reinforce that simulation to the things they personally care about.
  • Help the candidate overcome the ‘hard parts’ about changing direction in life:
    • difficult conversations with current management chains
    • obligations to existing commitments/team mates
    • uncertainty about the alternative simulation you offer
    • feelings about personal identity (i.e. my loyalty to current company, “I’ve always been a Googler”)

Almost always, declines in our offers are directly related to things above. We often don’t know what the hidden variables or thoughts and feelings that the candidate was using to make their decisions. Or said another way: these decisions are usually ’emotionally based’.

Occasionally, the signals can even be conflicting. For example, a candidate might say “I’m really interested in this role because it’s risky, and I’m keen to work on riskier things”. It’s likely the candidate knows that their risk aversion isn’t helping their career and they should change that behavior, but when it comes to crunch time, they fall back into previous behaviors. It’s your job to help the candidate keep an ’eye on the prize’ and help them overcome their own inherent flaws/biases.

All of this requires a deep level of trust, rapport and high tough engagement. Often if the candidate accepts, it’s because they believe and trust your simulation of their future.

Anti-Patterns for the Offer Stage

When a candidate informs their current management chain of their thoughts on accepting, there will be an aggressive counter, and a focus on the reasons why the candidate shouldn’t accept the offer: “It’s too risky; the company isn’t going anywhere; you can get what you want here; etc. One anti-pattern is to reject this criticism outright and tell the candidate that their management chain is biased or whatever. Resist the urge to do this. Instead, in a neutral and rational way, assess the criticism on it’s merit with the candidate — be open that there might be something there and help the candidate reflect on that with respect to the things they care about.

  • Pushing too hard or too fast.
  • Relying on obligation of the offer to persuade the candidate to accept.
  • Pushing/pointing out factors that aren’t huge influencing factors in the candidates decision making “look, our offer is far better on comp!”
  • Using “big wigs” as social capital based influencers “I’ll have you meet with our VP!”. They often might not care about your VP, and see it as more pressure and obligation to accept.
  • Disregarding the other people in the decision: partners, kids, location, time away from home, whatever.

Common Reasons Why People Don’t Accept

The abstract dimensions of reasons why people accept are:

  • Success / Growth potential
  • Safety
  • Prestige / Ego / Status
  • Rational
  • Purpose driven

The reasons I’ve seen why people don’t accept:

  • Too many senior people (safety)
  • Pitch on role describes too much responsibility (fear of failure, impostor syndrome)
  • Can’t learn/grow, can’t get promoted fast enough
  • Local manager vs. remote (safety)
  • Team vibe (prestige, safety)
  • Team social capital (prestige)
  • Don’t know how to contribute (success, safety)
  • Lack of interest/passion for the problem/space
  • Uncertainty

Hand Holding After Offer Accept

Do the following after offer acceptance:

  • Have everyone on the interview loop send a small note saying thanks for interviewing, really happy that you’re joining etc.
  • Have your own manager reach out, congratulate, and offer to have a conversation anytime they like between now and when they start.
  • Send your own e-mail congratulating them, and offering to check-in/stay in touch as much as they prefer.

The job is not done until they pick up their badge. Do not underestimate the power of others to influence and reverse the candidates decision. The biggest anti-pattern I’ve seen is that we go “radio silent” on the candidate after the signature is sealed. This gives confusing and conflicting signal to the candidate, making them more open to decision change.

Landing and Integration into the Team

Remember, this is a multivariate optimization: the company, the candidate, the team. Your job now is to smooth the way for social integration of the individual with the team. Focus on the following:

  • Communication with the team members. Early and often. When the candidate accepts, send a note to all team members describing who the person is, where they’ll fit in, what you think they may work on. You’re giving a general and flexible simulation of the teams future with this individual in it.
  • Signal your excitement.
  • Write down a list of potential team members that might consider this disruptive to their own goals/career agenda. For-each of these people:
  • Have a 1:1 with them, listen and understand their thoughts and feelings about this new person joining.
  • Ensure they have a correct simulation, and help them feel settled about the decision.
  • Identify any emotional reactions you might not be seeing. Address them.
  • Do the above often, the more regular the reinforcement, the easier the transition will be when the candidate arrives.
  • Find an IC to be responsible for landing/ramp up within the local team. They should be responsible for measuring the social integration of the individual also.

Landing and Integration into the Company

Your job is to build a plan to have the candidate get gradual and learned exposure to the company culture, it’s rules, it’s principles etc. You are responsible for the adjustment of the individuals behaviors to better ‘fit’ with the company at large.

You’re also responsible for helping the candidate build their own social capital. For this, you’ll need to spend some of your own. When the candidate lands:

  • Send a list of ‘people you should meet with’ for general social introductions. These are usually outside their direct team.
  • Send each of those people a personal e-mail asking them to spend time with them, and what to focus on.
  • Follow up with these people to see if there are any red-flags.

Build a timeline view for the candidate on what you expect and when. Make this super clear.

Meet regularly. Check in regularly. Ensure social capital is being built, and team integration is going well. Adjust if not.


Once the candidate has landed and has integrated. Have a conversation about how the hiring went from their perspective. Your goal is simple: validate the assumptions you had, the hidden variables you predicted, and the optimizations you believed the candidate was making at the time.

This will help you improve your predictive power for next time.

Hiring is done at this point. Manage them well.