Few topics are discussed as much in the tech industry as how to hire great people. There are myriad approaches, from how to look for qualities you want, to how to filter people you don’t want, to how to ignore standard metrics and go with some sort of instinct. Everyone has their favorite pet filter. I’ve spent the last couple of years grappling with this challenge myself and reading most anything I can find on different ways to find good employees.
What follows is a collection of philosophies, systems, and approaches that I’ve encountered during this time that may help guide you in your effort.
- Interviews Are Largely Ineffective
There is a growing sentiment in the tech industry that the classic meet and greet, review history, ask questions, etc. is simply not effective in finding quality employees. Quite simply, some people are great at answering questions and others are horrible at it, and we as humans are not great at separating our biases regarding liability and similarity to ourselves from the qualities we’re looking for. And that’s assuming we have even properly isolated the qualities we’re looking for.
Summary: Don’t trust face-to-face or telephone conversations or other personal interactions nearly as much as you’re naturally inclined (or have been trained) to. They are deceptive.
- Work Samples Are Perhaps the Best Metric
When compared to interviews, work samples (often manifested as internships, working on a project together, previous/existing side projects, or some sort of involved homework assignment) are widely considered to be manyfold more effective in gauging the qualities of a candidate. Many coding shops, including Microsoft, have extensive internship programs for precisely this reason. You can also see this in high-end financial services such as fund managers, where you basically give lots of people a smaller version of the job and see who excels.
Remember to focus most on real-world tasks and projects rather than theoretical ones, i.e. looking at their existing efforts, past side projects, or giving a sample project that is similar to the actual work they’ll be doing is likely to be more indicative of quality than anything theoretical. Make it as real as possible: either with a current project or by looking at existing/past work.
Summary: Do your absolute best to get the candidate to perform the actual types of work they’ll need to do if hired. This highlights not only the key skill-sets, but a plethora of other qualities that are tangential, such as writing skills, punctuality, working with coworkers, responsiveness to deadlines, etc. Look at existing work of theirs if available.
- I.Q. Matters
If you’re someone who doesn’t believe in I.Q. you might want to stop reading. I.Q. matters, and it matters more than ever in any position that requires people to adapt and adjust to changing conditions. Need to grow new skill-sets on the fly based on project? Need to creatively solve problems? Go with the bright candidates over the slightly more skilled.1 Having someone smart is like having someone who can make tools instead of having a good tool: it can produce for you in a multitude of ways, not just in the way it was designed. A number of high-end hiring professionals even take this to the extreme of looking at I.Q. proxies as their main criteria for hiring, e.g. if someone went to a top-tier school they needed high SATs to get there.
- Education is Complex
If you had to name the one hiring point that people disagree most on, it’d be education. Some people think it’s a non-issue, others think it’s pivotal. The answer, unsurprisingly, sits between the two. First, if someone went to a top school (Harvard, Stanford, CalTech, MIT, etc.) that means they got in. This indicates a very high SAT and stellar grades in high school. This at least indicates a high I.Q., and the ability to complete tasks.
As a guideline, people who finished college are more dependable and capable of delivering at a minimum quality level than those who did not, and sub 3.0 GPAs might call into question the same issue, i.e. the ability to finish unpleasant tasks with a decent level of quality.2 Those who have a degree may still turn out to be mediocre (they’re just people), but those without one have a much higher chance of being undependable.
To generalize, college graduates have a higher chance of offering dependable mediocrity, while dropouts have a higher chance of offering inconsistent brilliance. Obviously there are many exceptions, and some people (both grads and dropouts) are mediocre and inconsistent while others are both dependable and brilliant. Weigh this for what it is — a single data point.
Summary: Education proxies other things: in the case of elite schools it proxies intelligence and high performance in high school AP courses, and in the case of having a degree with a decent GPA it proxies the ability to endure crap and finish tasks according to a standard. Be cautious of treating it as much more than this.
- Don’t Forget to Explore the Past
Some techniques try to find good qualities to hire for, others look for negatives to exclude based on. This one is the latter. Ensure you talk to the candidate about why they left the previous three positions they worked at. You’d be surprised how many will give highly revealing information about this or that messed up situation. In addition, try and speak with good references from those positions, as major conflicts or performance issues are significant finds here.
- Credit Score
If the company hiring is something like a banking institution or other high-trust organization, they may pull credit scores. Quite similar to educational background is the metric of one’s credit score. This is to say that having a 400 doesn’t mean he/she is a bad person, or is guaranteed to be a poor employee, but it is more likely. Similarly, having a credit score around 800 doesn’t mean the employee will be phenomenal, but it does mean they are very likely to be punctual and stellar at meeting deadlines. Add this to education and you have a pretty good basis on which to predict dependability. Note, however, that dependable doesn’t mean extraordinary. It’s common to end up with workhorses who produce standard gray goop, while those without the degree and bad credit can (inconsistently) deliver impressively.5
- Passion vs. Self-discipline
Everyone knows that candidates who are passionate about the work are, all things equal, superior to those who are ho-hum. But keep focus on the fact that some ho-hum people are workhorses who never miss a deadline, and some passionate people can’t complete projects. Self-discipline drives toward a goal, while passion can often produce dangerous tangents. You want both, but don’t make the mistake of confusing the two.
- Ask Complex, Project-like Questions
When you do get around to asking candidates questions, ask questions that require the active demonstration of many types of knowledge and skill rather than something that’s easy to parrot. Example: instead of asking what traceroute does, ask them how many ethernet frames — from layers 1 to 7 — would hit the wire if you performed a traceroute to host x on the Internet. This is a common technique at Google, where each interviewer doesn’t have twenty simple questions, but instead just a few (or maybe just one) massive question that requires extensive thought, calculation, and explanation. Conversely, asking how one would write a sorting algorithm is something you can study for and ace without having much ability to perform in the wild.
- Get Eyes on Them
This matters more for certain positions than others, of course, but if your position requires any sort of customer interaction you should not bypass the step of meeting face to face with the candidate. How they carry themselves, their wardrobe, the way they speak, their sense of humor, etc. can all be sensed by customers and potentially sour otherwise solid engagements. Have a prolonged conversation with the candidate about a number of topics to simply feel out these attributes. You’re simply making sure nothing negative surfaces that didn’t reveal itself earlier in the process.
- Don’t Make The Mistake of Thinking You Can Train Experience
While intelligence is definitely a phenomenal asset in a candidate, don’t make the mistake of thinking that a bright, talented individual can pick up enterprise IT in a few months and be anywhere near someone who’s been doing it for numerous years. It’s the intangibles that get you — the things you can’t possibly remember to teach someone. In a discipline where experience is required, intelligence gets you elevated potential for becoming great, not instant greatness.
- In Order: Work Sample, History, Intelligence, Interview
Based on everything I’ve gathered during this process, here are the weights I would assign to these various inputs: 1) the work they do for you on a project, or work they’ve shown you of theirs that’s representative. 2) proven high quality results in the same field, how they got along with previous managers/employees, and why they left previous positions. 3) how much raw intelligence they have. Test it somehow; it’s worth it. 4) overall impression of them through interviews (vibes, feels, intangibles, attitude, personality). Don’t distrust yourself, but be cautious of natural human bias for or against people with differing levels of charisma and/or presentation ability.
Summary: Do not underestimate the benefit of raw intelligence. Hiring average people with the requisite skills provides a decent baseline for immediate delivery, but hiring intelligence can often effectively magnify the number of people you got for that money.
Summary: Second only to work samples, knowing how someone performed in the past is absolutely invaluable. Don’t rely solely on the more exciting high-touch techniques for gauging candidate quality: always check references even if everything else looks flawless.
Summary: If you do use credit score, weigh it much like you way education, i.e. as a single data point for consistency/dependability and not as an overall proxy for quality.
Summary: Look for passion, but make sure it can be focused on deliverables when required. And with the highly self-disciplined types, acknowledge the follow-through but ensure that there is also passion that will lead to extraordinary results. Lacking either is likely to present issues in the future — either in the form of inconsistency or mediocrity.
Summary: Ask questions that serve as very short internships. Have them think through and solve a complex problem with you. Observe how they troubleshoot, brainstorm, communicate, etc.
Summary: Think of this almost like a reference check. It should be built into the process and never bypassed. The things that will be caught by it are not things you can necessarily anticipate.
Summary: Don’t think you can substitute bright newcomers for seasoned professionals any time soon. It probably won’t work.
Summary: Based on how much time you have available for the evaluation process, go for the types of input that are most likely to give you a high-quality candidate. If you can do them all, great, but if you can only do one or two, go with work sample and history, etc.
Now that we’ve covered some concepts, let’s talk about a few categories of undesirable hires, and the specific hiring techniques for ensuring you don’t get stuck with one of them.
- The Constantly Unhappy Troublemaker
Troublemakers tend to have a warped view of the world, i.e. it’s always the other person’s fault. Curiously, this seems to happen wherever they go, over and over through the years. Typical behavior includes stirring up drama, being seriously angry with a boss or co-worker most of the time, and/or threatening to have people fired.
Catch Method: Check as many references as you can, and talk to as many people from the person’s past as possible. Also, ask questions of the candidate that provide an opportunity for the candidate to launch into a tirade about how much they hate people they used to work for, or with. E.g. “What kind of things did previous employers do wrong that really bothered you?”, and “Have you ever had to take formal HR action against a previous boss or coworker due to them being incompetent?”
- The Passionate But Inconsistent
This person doesn’t lack passion, but what they do lack is the ability to focus and/or to complete unpleasant tasks. Expect this person to have a ton of great ideas on different ways of approaching a problem, but to often come up empty when it’s time to turn in a report or to follow a defined process or methodology.
Catch Method: Talk to people they’ve worked with, check references, and try and do prolonged work samples (mini internships, if possible).
- The Consistent But Mediocre
This person has all the consistency and follow-through you could ever want, but they’re not likely to deliver anything other than what was asked — assuming it’s fairly easy to do if you just stay on task. Don’t expect much creativity or new ideas from them.
Catch Method: First of all, make sure you want to filter them in the first place. Many teams lack these types and could actually benefit by having one or more to add stability and consistency to the mix. If you are sure you don’t need any/another of these hard but unlikely to impress workers you detect them by asking them what they do in their spare time. Ask them what technology has excited them in the last six months. Ask them what their home lab looks like. Ask them what recent programming projects they’ve worked on. This will usually reveal someone who has no interest in technology outside of work.
- The Eager But Unable to Learn and Apply
Here you’ll often find a seemingly bright, perhaps credentialed person who presents well and seems to have nothing but upsides. But as you start to train him you find that they either don’t get what you’re saying, or claim to get it but are unable to repeat it back to you without omission or error. And as time goes on he simply fails to grasp the concepts and/or be able to apply/implement the knowledge that’s been repeatedly re-imbued.
Catch Method: Real-world, troubleshooting-based interview questions, such as walking through a full assessment with example vulns, or troubleshooting a malfunctioning technology, or reviewing code, or doing anything that requires the application of many different types of knowledge. References can also help on this one.
Please understand that all of the content above is was provided to supply data points, and no individual piece of information, technique, or observation is meant to serve as a single or even overly-weighted decision factor. People vary widely, and many of the best people I’ve worked with have some of the problems and lack some of the positives discussed above. This includes me.
That being said, if you have any comments or points to add, please let me know.
Notes and Resources
1 Keep in mind that this depends on the type of hiring you’re doing. This primer is focused on hiring overall strong people who can do many things well, not on highly specialized factory workers who only do one kind of coding or other skill.
2 I’m not saying college dropouts are poor hires necessarily, only that it’s a flag that needs to be explored. Were they young? Still figuring out life? What was the reason they didn’t finish what they started, and how do we know things are different now?
3 This is geared towards high-end IT hiring, but obviously has crossover into many other fields.
4 My list of Information Security Interview Questions.
5 Be sure to check with HR and your local hiring laws before considering the asking for, or use of, a credit score.
6 A good op-ed on hiring..