I’ve been thinking about programmer hiring for several years now, and I have a new theory for how to do it:
Make it clear what it is your software team does, and hire people who can make an enthusiastic case for why they want to join your team.
That’s pretty much it. Class dismissed.
I guess I should justify this theory. The remainder of this piece describes my journey to this radical realization.
Engineering hiring is broken
I’ve felt for a long time that the standard developer hiring process is broken. Whiteboard coding and coding tests have no correlation with the actual work programmers do. And yet, they don’t seem to be going anywhere.
Four years ago, I wrote a piece that outlined an approach to revamping hiring practices to better match actual success on the job, based on the thesis that traditional engineering hiring practices measure little of value. I still stand by the logic of that piece. I’m going to call this my Original Recommendation, for clarity.
However, a thread by Jason Wong popped into my Twitter feed, and we had a brief discussion that inspired me to believe that we can do even better. To summarize, Jason believes that we have very poor ability to predict an individual’s performance in the context of a new team, even if we have thorough data on prior performance. If that’s the case, then we’re largely wasting our time trying to measure merit in the hiring process.
That blew my mind. But it shouldn’t have. I already had my mind blown when I read Twilight of the Elites almost 10 years ago. That was the first time I ever critically questioned the concept of meritocracy.
Let me briefly break the argument down. Meritocracy is the ideology that those who demonstrate merit—by potential or track record—should be given a greater share of opportunities and resources. Think “gifted education”. We can’t know for sure who will achieve in the future, so we use proxies to predict future performance, and we call this merit.
The problem is, our measures of merit are often subjective, flawed, and biased by the thinking of the decision-makers who choose them. Those people were granted this power by both merit and privilege. At best, meritocracy starves perfectly capable people of opportunities and resources, and at worst, it functions as an undercover mechanism for reinforcing privilege. (Definitely do read the book if this sounds intriguing; the argument is made in a great deal more detail there.)
To really hammer this in: despite having experienced a paradigm shift from reading a book about the fundamental flaws of meritocracy, I went on to write a piece about engineering hiring based firmly on meritocratic principles.
I guess that’s not so surprising. Meritocracy is the water we swim in, in American culture. And nowhere is this more deeply ingrained than in the tech industry.
The scary thing about criticizing meritocracy is that it leaves a huge vacuum of what could possibly serve in its place. You can see on that Twitter thread that I actually grapple with this consequence. Fortunately, my despair would be brief.
Hiring is the inverse of job hunting
As it happened, that same day, I was listening to a podcast on getting ones’ dream job. I almost skipped it, because I’m not looking for my dream job. It didn’t seem applicable. Glad I didn’t. The featured guest talks about how a job applicant can set themselves apart by going out of their way to demonstrate their passion for the role and the research they’ve done in advance.
It got me thinking, engineering hiring would be easy if you had candidates knocking the door down to get in. But in my experience, that’s usually just not the case.
For the most part, potential applicants don’t know what people actually do in real life who work in a role they’re applying for. Job descriptions are vague, if they’re even accurate at all.
If we fixed this, we could basically let candidates select themselves, rather than guessing who’s going to be successful.
Case study #1 – Artsy
One place I worked where people do knock down the door was Artsy. While I was there, we regularly hired great people, even though I felt our hiring process there was a bit ad hoc at the time I joined. But Artsy engineering does an exemplary job of telling the outside world what real engineers really do there. Not only that, because they’re open source by default, they do an exemplary job showing it, too.
While Artsy’s hiring process has evolved to become pretty similar to my Original Recommendation, it was pretty effective before and after making these tweaks. To me, shows you can largely win the hiring battle before even thinking about how you’re going to filter applicants. In my time there, I’m sure we turned down a ton of people who could have been fantastic. If true, that means it’s possible to actually spend too much vetting people, if you already have a pipeline of passionate applicants.
Case study #2 – Arena
I left Artsy last year to join Arena, where I work now. When the opportunity came to me through my network, I wasn’t actively looking for a new job. Consequently, I spent the most time I ever have trying to understand what I would be getting into if I joined. I had in-depth conversations with the President, the CPO, the Head of HR, in addition to all the folks I talked to in my actual interviews. Everyone was incredibly transparent and candid. This helped me to be able to picture whether the move made sense to me and understand where I could contribute.
Only thing is, I was a warm intro to the company. As transparent as folks were with me, that doesn’t necessarily help us pull in further interest. It makes me wonder how we can invert my experience to produce the resonsence I experienced in applicants we can’t reach through our limited personal networks.
I do still believe there’s still a place for meritocratic hiring practices. I’m not a communist! Sometimes, you need to import specific expertise into your organization, and you need to vet that expertise.
But, more often, you need a new team member to augment and backfill your talent base. My theory is that the best investment to improve hiring is in transparency.
- Reflect on what the essential work is on your team and put that message out into the world. That includes the technology, projects, goals, values, and especially the challenges.
- Present it in a way potential candidates can digest and match themselves against. A lot of people aren’t going to resonate, and that’s actually a good thing, because you want an applicant pool that does.
- Invite applicants to express who they are, why they want to work with you, and what they’ll bring to the role.
From that point, evaluating a candidate becomes much less like gatekeeping and much more like what Jason Wong describes in one of his pieces:
[…] think of your interview as an exercise in understanding how a candidate can be successful at your company or on your team.
This is a major shift for most organizations, and I’m not even sure what all the best practices would be. Artsy’s approach to transparency in work, for instance, is probably not applicable to every company, and I’m certain there are valid alternatives and extensions. Arena’s transparency in 1:1 communication isn’t so scalable. And I’ve never experienced an evaluation process like the one I’m proposing.
For those not yet ready to think beyond meritocracy, and those who need something to use while in transition, my Original Recommendation still stands. But for those open to rethinking some of the basic assumptions of hiring, I suspect my new recommendation can lead to a hiring process that is more effective, efficient, inclusive, and even enjoyable.