Why You Can’t Find Good Engineering Talent

Some guy on the internet talks about baseball, Moises Alou, Kubernetes, and blue hair

Why You Can’t Find Good Engineering Talent
Photo by Thomas Park / Unsplash

A Common Tale

So you want to hire good engineers. You sit down, fire up your favorite word processor, and hammer out a job description: Full Stack Engineer. It’s full of the latest stuff. Its got stuff like Kubernetes, React, Scala, Angular, AWS, Jenkins, Oracle DB, Ruby on Rails, MongoDB, GraphQL, Elasticsearch, machine learning, and a dozen other cool new things all over it. Excitedly you post it on your favorite job board, sit back, and wait for the responses to flow in. Five, ten, fifteen resumes come in, you schedule a few interviews, and you’re off to the races.

Or so you think.

Your engineers report back to you: none of the candidates are what you’re looking for. They have gaps in their skill-sets, not enough experience in key areas, can’t answer basic technical questions — whatever the reason may be the result is the same — they’re not qualified.

Frustrated you go back to the job board, find more candidates, and the cycle continues until you settle on someone who is the best of the group but not necessarily who you want. No one is happy and you don’t know why,

Luckily I can help. The problem is actually rather simple: You want too much from one person.

Create-a-Candidate

The year is 1999. My brother and I have managed to get a copy of EA’s Triple Play ’97 running on an old family computer. We don’t even like baseball that much, but baseball computer games tend to be more fun than watching, and its something new. Aside from creating a team that consisted entirely of 16 copies of Montreal Expos outfielder Moises Alou, one of the most fun things was to play around with the “create-a-player” function and see how crazy you could get. Want to create a 7' 2" 350-pound first baseman? You betcha. How about a 5' 0" 100-pound catcher with blue hair? Of course. A pitcher that can only throw knuckle-balls? Sure, why not. But no matter how crazy you wanted to get with your player’s stance, height, weight, hair, and whatnot, you could only ever make your player so good. And that’s because of the skill points system.

The skill points system gave you a finite allocation of points you could then “spend” to make your player better at certain aspects of their game, like batting or fielding. This kept you from creating the next Bo Jackson and making someone that was ungodly amounts of good at every single area of their game. It’s a nice balancing mechanism that’s been around for a very long time — Triple Play ‘97 didn’t invent it and it’s still used in games today (The Outer Worlds, for example). “What does all this have to do with finding engineers?” I can hear you asking. It’s simple: when creating a job description or job posting, pretend that you’re using a “create-a-candidate” tool and you’ve only got five or so “skill points” to use. Allocate those “points” to the areas that are most important for the position, then ignore the rest.

Put It Together

Let’s go back to our beginning scenario. The first step would be to talk to the engineering team and find out what the absolute top required skills are for the position in question. That should narrow it down to the top five or six things that the candidate needs to be good with. As for the rest of the stuff: if its not important enough for it to be ranked in the top 6 its something they can learn on the job. You cannot afford to expect every single candidate to be an All-Star in every single skill area, that unrealistic expectation is how you end up with a mediocre candidate that is approximately familiar with lots of things but not really amazing at one or two. The best engineers tend to be wicked smart — I’m sure they can pick up on things they don’t know pretty fast.

Once you’ve got your revised job posting done, put it up, and see what happens. You probably won’t be disappointed.

Anything that I missed? Any ideas? I’d love to hear it — post in the comments!