Over the last decade, I’ve hired more developers than I can count. Naturally, I’ve made plenty of mistakes. I started out hiring the smartest, most experienced people I could find. I didn’t care about personality. I cared about what school they had attended. I hired fast to get people in seats.
Fail after fail, I learned that being smart, having experience and going to a good school didn’t always make for a good developer. I needed to look for what made a strong team.
Now, I look for three key things in the following order: character, intelligence and skill. Here’s a little more about what each trait means to me and how each quality plays out:
Is the person self-motivated? Do they strive to be the best developer possible? Are they putting in the effort to constantly learn, or do they need a push?
I look for people that really love what they do. Is coding their passion, or what they do to fund some other passion? I’m not suggesting that you find people who only want to code all day long. You need folks who are balanced with a variety of talents, interests and hobbies. However, you want to see the fire in their eyes when they talk about new coding principles or an awesome new library that just came out. They are going to be spending a huge chunk of their day coding. You need to find people who are not only OK with that, but live for it.
At some point, character boils down to, “Do I like this person?” It’s totally subjective but important for healthy team dynamics. However, be careful that you don’t hire for sameness. You need a diverse, well-rounded team with a variety of personality types.
What I’m really looking for is, “How does this person make others feel?” When things go wrong, do they look for someone to blame? Or are they the first person to ask, “What can I do to help?” Are they a strong communicator? Can they give and take feedback in a constructive way? One way we get a sense of communication skills is by asking final-round candidates to go out for dinner or drinks with the team. This isn’t a grilling session, but instead an opportunity for the candidate to show a little more of their personality.
When you hire someone with poor interpersonal skills, you’ve hired a slow-growing cancer. Their influence will corrode the best parts of your company culture. By the time you cut out the cancer, you will inevitably lose some good people. Don’t make this mistake. The output of one brilliant but uncommunicative developer won’t compensate for the damage to your team.
I’m talking about raw intelligence. I don’t care about what school a potential new hire went to or what certifications they have. I care that this person is a problem solver, a fast learner. This can be tough to tease out during an interview. I try to throw interviewees curveballs, but nothing ridiculous or insulting. I listen to their response, then challenge them on it. It doesn’t matter if I agree with them or not. I’m looking for how they respond to my curveball. Ask candidates simple questions that don’t have a “right” answer, and ask them to think out loud to see how they come to a conclusion.
Recently, I interviewed a candidate for a senior developer position and asked what they were passionate about outside of work. Turns out they’re a huge Star Wars fan, so I challenged their response with reasons why Star Trek is better. Personally, I enjoy both quite a bit, but it was a perfect question to ask because it’s arbitrary and a huge source of debate. The candidate totally took it in stride and had a wonderfully formed rebuttal showing their thought process and communication skills.
Obviously, you need someone who has the skills to do the job that you’re hiring them for, but this hiring pillar is flexible. You should be more concerned with hiring someone that knocks the first two pillars, character and intelligence, out of the park. You can teach skills, but you can’t teach character or intelligence. How many candidates have been out of the running before you even met them because they didn’t know some random language or the fastest way to sort an array? You’re shortchanging the candidate and missing out on someone that’s potentially awesome.
I’ve had tremendous success hiring people who have never directly done the job that I’m hiring them for, but really embody the character and intelligence I’m looking for. I can feel confident in hiring that person because I know they’ll put in the extra work to catch up and gain the skills required. Also, I know that I’ve built a supportive team to make that possible.
If you find someone extremely special, hire them. You’ll be surprised at how fast they get up to speed. If you’re worried about having the time or resources to train them, reach out to your network and see if you can enlist a mentor for this new hire to at least help them get started.