Things I look for when hiring

August 20th, 2008

Hiring is a very difficult thing to do.  Finding someone with the right mix of passion, skills, and personality is extremely difficult.  I have found that it is even more difficult when running a start up as your margin for error is absolute zero.  At a start up, the stakes are extremely high, the work demand is extreme,  and you don’t have money or time to make mistakes, especially hiring mistakes.  You need to build and maintain a highly tuned machine.  The impact of hiring someone who cannot pull their weight, has a giant ego, or is only along for a paycheck will be devastating.  I’ve seen it set teams back weeks if not months.

Fortunately, I haven’t experienced anything like that as of yet.  As my team has grown, each new edition has been great. Each person brings missing skill sets, great personality for start up culture, and a passion for our craft and what our company does.  However, I am currently filling three open positions on my team right now.  A developer, a designer, and a tester.

Starting the hiring process again has got me thinking about what I look for specifically in a developer.  These aren’t in any particular order, nor am I discussing any weighting of one vs the other.  Additionally, not having one of these qualities doesn’t instantly remove you from potentially getting hired.  This are just some of the things I look for and why.

Passion

First and foremost, the person must be passionate about what they do.  When hiring a software developer, computer science should be their religion.  I want to know that when they wake up in the morning, this is what they look forward to doing.  Their night stand should be stacked with Computer Science books, and their browser history should show the usual suspects.

This is important because at a start up you work a lot of hours.  I typically tell someone during their interview that joining a start up isn’t a career decision, it is a lifestyle decision.  Currently my team typically averages somewhere between sixty and eight hours a week.  If software development isn’t your passion, it isn’t something you could do morning, noon, and night, you are most likely going to wash out.

Polyglotism

Seeing that the person understands the language that our technology is currently built upon is a plus.  However, I would much rather see a few languages under the persons belt.  Specifically, a good balance of dynamic, static, strong, weak, and functional.

I find this important because it shows the person is most likely stronger across the board.  Additionally, I want to know, if we adapt a newer technology or language, as it is a better fit for a particular job, the person isn’t going to be totally out of their element diving into new and uncharted territory.

Independent Projects

A few years ago, I probably wouldn’t have stressed this as much.  However, after seeing the difference this quality usually makes, it is high on my list.  It could be anywhere from participating in local user groups, to actively developing on an open source project.  I want to see that you actively participate in a broader community of your peers.

Data structures and algorithms

This is an important one, at least for me and my team.  We are currently building a large scale distributed system that deals with very large data sets.  More importantly, because we are a search engine, our ability to slice and dice that data in extremely fast times is critical.  Without have a solid foundation in data structures and algorithms would be an extreme disadvantage.  Typically I look for the usual suspects …

  • Graphs
  • Trees
  • Linked lists
  • Advanced Sorts
  • Big O

Confidence and Humility

Everyone at a start up has a lot of responsibility on their shoulders.  I need to know that you will have the confidence to tackle very difficult problems and solve them in short time frames.  Additionally, you need to be able to ask for help, collaborate, and communicate.  Finally, you need to check your ego at the door.  Right now we don’t have anyone with the title of “lead”, “senior”, “architect”.  We are all engineers working together towards a common goal.

Diversity

It’s important to be more then just a development rock star.  This is important because of where we our in our start up.  As we grow, specialization will be more important.  However, right now, we need more then just a developer.  Having experience in development, infrastructure, databases, and security is incredibly beneficial.  Obviously finding someone with all of those is extremely rare.  Typically I look for a few of those skills in a candidate.  Specifically, where the team is currently lacking. Right now, having someone who has a strong back ground is security would be a major plus as the other categories are currently covered by someone on the team.

Wrap up

That’s really about it.  If I think of anything else I will update the post.  If anyone else has qualities they look for, please feel free to leave a comment.  Additionally, if you are looking to join a start up that is working with Ruby on Rails and building a professional networking platform and search engine for the medical community, please feel free to contact me.  My email address is anthony [ at ] within3 [dot] com.