How to Hire Developers Who Don’t Suck Using This Crappy List

You’ve just had to escort Steve out the door. He was your most recent hiring flub. That poor schmuck. But what went wrong? He had the 4.5 years of .NET 4.5 and even a master’s degree in software engineering.

He seemed like a perfect fit. He matched all the main criteria that you were looking for. He WAS the job description. You recall telling your colleagues that you found the elusive purple squirrel. Only you didn’t because he was a major dud, right?

He thought there was nothing wrong with writing .NET code using Notepad — no need for IntelliSense, he would say. He also loved picking fights with his coworkers. That and he liked to show up around noon, so he wouldn’t miss lunch. He was also the guy that when your manager ordered pizza insisted all the pizzas only have tomato sauce for a topping.

He was vegan and was trying to force his dietary choices on everyone else. He also had a bad peanut allergy, so if you opened a little bag of peanuts, despite being 10 cubes down from him, that you got from your most recent Delta Air Lines travels, he would run to HR to complain. He also thought that Putin taking over Crimea was awesome and said it was about time. That asshat he was.

Well let’s try not to make that mistake again. But how?
Here are the biggest mistakes I see managers make time and time again.

  1. First mistake is hiring based on .NET or Java trivia — like .NET 4.5.2 specifics, etc. I’m not suggesting experience in these technologies equates to trivia, yet too much focus on specific technologies (especially specific versions of the framework, etc.) will ensure you will not find the best candidate. I think there are more important things you should be focusing on. Programming is a profession, not a vocation. If they have a couple of years of somewhat recent .NET experience, that should be good enough for most .NET related jobs.
  2. Next up is putting too much emphasis on education. Having an MS or PhD might correlate to a stronger candidate, but too much emphasis on fancy degrees means you are overlooking what is most important. (This is coming from someone with a master’s.)
  3. Then there is the fixed experience bracket mistake. Often the typical 3-4 or 4-5 year experience bracket. Most of these brackets are arbitrary and only help to exclude good candidates that have less or more experience. If you use brackets, just be very flexible with them.
  4. Lastly, Similar to item 3 above, the 10+ year experience myth. Some fields require 10+ years of experience before true proficiency but many don’t. I’ve seen too many managers focus on this when they are looking for a high-caliber person.

So what should you be looking for?

  1. A passion for developing software. How do you measure it? It oozes out of their pores. This is the most important criterion above all others. It’s only a qualitative feature, which is why many people neglect this trait. Look for this during a phone screening.
  2. A portfolio of code, usually open source, on GitHub or a similar code-sharing service. Is their code any good? Have one of your top team members review it first before making the call.
  3. Does the candidate have a programming blog? This isn’t required, but it correlates rather highly with a candidate who is passionate about software — a very good thing. Are their ideas good? Are their articles well written? What better way to get some insight into their writing skills, too.
  4. A history of getting things done. The resume usually demonstrates this well.
  5. Upward career growth. The resume usually also demonstrates this well.
  6. Past vetting at top schools or firms. Top schools and companies tend to be more selective, so if they made it past the vetting process of such a school or company, that’s a good thing.
  7. Good social and communication skills. Don’t confuse introversion with poor social or communications skills. You don’t have to be an extrovert (note, I actually don’t buy into these labels) to be a good programmer.

Also make sure to do a phone, FaceTime or Skype screening. During the phone screen, look for passion and strong communication skills. And make sure to be skeptical of a job hopper. Some job hopping is OK, but too much is a yellow, if not red flag.

However, don’t worry about gaps in employment. Yes, if excessive, that would be a concern, but why penalize a person who took care of a sick parent, spouse or child, or their own health issues? Maybe they were in grad school or traveling and learning about other cultures.

Those should be considered good things. It’s called a sabbatical. Sometimes this is a must. This is especially true considering the long recession the world has seen the last few years — the so-called Great Recession.

Programmers are a unique breed. I would surmise the average programmer has well above an average IQ. Finding the right candidate isn’t easy, but hopefully using these tips will help you when you’re considering candidates in the future. Now there will be no more Steves in your future. Well, we can only hope.