Adventures in HttpContext All the stuff after 'Hello, World'

How to Hire a Software Developer

_Note: This is part of a series on hiring software developers.  See articles tagged with interview for the series._

We just finished a round of recruiting at our company, and I’m somewhat happy it’s over.  Hiring software developers, or any other type of employee, is never an easy task.  How do you know you’re picking the right person? How do you know if they’re qualified? How do you know they’ll deliver as well as they interview?  These are all questions we ask ourselves as we’re harassed by recruiters, rummage over resumes, and get our interview questions ready.  However, I’ve learned a great deal during this last round of recruiting, and am happy to say it’s no longer a painful process.

Here’s the one liner: If you go into the hiring process without a strategy, like most things, you’re doomed to fail.  It’s important to get your strategy down before you even post the job ad.  You need a clear pipeline from start to finish, so you can manage the process easily.  Plus, hiring somebody who’s part of a team should never be a one person job.  That doesn’t mean give the bad parts (like phone screenings) to other people.  That means getting your team involved- and allowing them to give critical feedback on a candidate.  It’s easy to do that if you have a strategy that allows clear benchmarks when comparing candidates.

We break our hiring pipeline into three major parts:

  1. The Phone Interview
  2. The In House Interview
  3. The Follow Up Interview

I’ll dig into each part in later posts, but it’s important to note it all starts with getting resumes in the first place-  and that requires a solid ad.  You’re not only announcing the job position, but you’re selling yourself to the world.  The ad, as well as resumes, will be the subject of our next post.

Stay tuned!

How to Interview a Software Developer: The Ad and Resumes

_Note: This is part of a series on hiring software developers.  See articles tagged with interview for the series._

The Ad

The ad is one of the most important parts of the hiring process, as it sets the tone for who you’re asking to apply.  If you write a careless, generic ad you’re going to get generic candidates.  Well, you’re always going to get generic candidates, but with a generic ad you’re definitely not going to get any good or great candidates.  It’s as simple as this: If you want a good developer, you need a good ad.

It doesn’t take a lot of effort to see the difference between generic ads and good ads.  Just do a simple search of C# on Dice.com and you’ll see them- bland titles, boring summaries.  Would you apply for these jobs? I don’t even want to look at them!

Here are some guidelines:**

**

Be proud of the company and the job, and be proud of the work you do. Show that in the ad, and show why good people will excel at your company. There should be an exciting summary of the company, as well as the job.  It’s important to put development work in the correct context, and allow people to see how they can fit and contribute.  A good ad will open the door to a positive answer when you ask, “Why do you want to work for us?” later.

Don’t hide your company behind a recruiting agency. Disclaimer: I hate recruiters.  99 out of 100 times they’re awful people, shoveling the worst resumes in your face and harassing you.  About half my phone calls are recruiters- and I hang up on all them.  It’s worthless.  More importantly, quality candidates probably aren’t going to work with recruiters, because they don’t need to.  It’s their market, not yours.  Be open about the company, the job and the work.  A good candidate isn’t going to apply just because the ad says “C#/Javascript/Sql Server”.

Explain about the lifestyle of the company in the ad. Be somewhat silly, but honest.  People want to feel at home at work- and relaxed.  Show off the perks a little.  This will get people excited about the opportunity, and will make them want it more.

Explain what you’re really looking for, not just certain skill sets. If you’re demanding people know one language or another, you’re cutting off a lot of your applicant pool, and that’s bad.  Sure, if you want someone who’s going to do low-level device driver programming, you can be picky.  But for most things, it doesn’t matter if a candidate knows C#, PHP, or Java.  A good candidate will learn a new language quickly.  It’s more important they know the principals of programming.  Explain the skills on a high level- web programming, application architecture, content management systems, social websites- and let the candidate apply their knowledge to your needs.  If they can do that, you’re golden.

Resumes

Hopefully you’ll get a lot of resumes- and you may think it’s hard to separate the good from the bad.  It’s not- and if you’re on the fence about somebody, then they’e a “NO”.  Don’t waste your time!  Here are some tips:

  1. You’re only goal is to see if the candidate is worth a phone call, that’s it.  You’re not hiring them based on their resume.
  2. If the have certain items in bold, they’re no good.  Who bolds items on their resume? I see this all the time.  If you have to bold items in your resume, tailor your resume.
  3. A resume should be one page, two pages max.  If you get an eight page resume, pass.  It’s all filler.
  4. A candidate should explain how they solved problems at their job.  You’re hiring a problem solver.  If a candidate writes “Created user controls and a site map for a website,” don’t call them.  That’s a gimme.  Should they write they double clicked the visual studio icon also? I look for how they applied their knowledge to get things done.  You should too.
  5. Look for typos.  I see a lot of these- even small things, like capitalization errors.  If a candidate isn’t going to take the time to clean up their resume, they’re probably going to be sloppy programmers.
  6. I can live with someone specifying every technology since the dawn of man on their resume, but I’m going to call you out on it.  I really don’t believe people when I see “PHP, ASP.NET 1.0/1.12.0/3.0/3.5, WCF, WWF, WPF,WebForms,Cobol, Java,EJB, Windows Vista, XP, NT, Server, Abacus, Sql Server 7.0/2000/2005/2008″!  Really? The abacus? You used the abacus at a job?  Somehow, somewhere, someone told candidates to list every possible buzzword on their resume, and people blindly followed.  FYI: Nobody’s going to say “Oh, sorry, you didn’t list VB 6 in your skillset, I’m not calling you.”  If they do- don’ worry- you don’t want to work for them.

Luckily, you’ll be calling about 15% of the resumes you get.  In a tight job market like NYC, maybe 20-25%.  If you hire a lot, I’m sure you’ll find the resume says a lot about the candidate- and the ones that stand out are easy to spot.  **If you think you’re not getting any good resumes in, then you’re writing a poor ad.

**