Hiring a programmer is a lengthy process, especially if you are looking for the best. As soon as you start your search, you will certainly notice that great software developers are very rare to find. You can go through thousands of applications without finding a single one. Unfortunately, most great programmers are never on the market, and really only apply for jobs through an actual application process three or four times during their careers. Instead, they are often funneled into jobs and startups through connections or recommendations.

If you are using a traditional hiring process to find developers, though, here are 5 things you should avoid during the process.

1. Only focusing on technical ability

Good programmers know how to code, but great programmers are so much more. A great programmer is an expert decision maker, clear communicator, team leader and so much more. This is the kind of candidate you should be looking to hire.

Communication ability cannot be stressed enough, especially if you are not a skilled programmer yourself. You must be able to rely on this person to clearly explain and translate what it is that they are working on. Clear writing can be a great indicator of communication skill. Look through candidates’ blog posts or ask each candidate to submit a writing sample as part of the interview process. If you want to gauge communication skills in person, have candidates give a short presentation on a project that they are passionate about.

You should also screen for raw intelligence. Coding is basically a series of decision-making, and you want to hire people that you trust to make those decisions. An intelligent person is more likely to consistently make the right decisions than someone who is not as intelligent. Additionally, smart people will attract other smart people. When you are interviewing more candidates down the line, they will look at your team and see if it looks like a group they would want to work with. In general, smart people want to work with other smart people.

2. Trying to hire without a programming background

If you do not know anything about coding or software development, you are probably out of luck when it comes to hiring a programmer. The problem is not managing these programmers once you hire them–most programmers are pretty self-managing–but actually being able to spot them during the hiring process. It takes a good programmer to be able to recognize other good programming talent.

The good news is that there are a fair number of options out there if you need to turn to outside help. The first thing you need to determine is the best language to use to build your product and any specific features you want your product to have.

Once you have determined the language or languages you will need on your project, you can turn to programmer friends for advice. Ask them to walk you through the interview process, questions to ask, and answers to look for. Also offer to pay them for consulting services on interviews. Especially later on in the interview process, as it gets more technical, it’s extremely important to have someone on your side who knows what a good programmer looks like.

The best option for non-programmers, however, is probably to hire through an online freelancing site. I would recommend checking out Toptal, which is a site for the top 3% of freelance programmers. All of Toptal’s applicants are screened through language and personality tests, timed algorithm testing, technical screenings, and test projects. You’ll describe your project to one of their engineers, and they will pair you with a programmer who fits your needs. Engagements are flexible, and you’ll be able to specify the duration and level of daily commitment you require.

3. Failing to weed out frauds

The number of people who call themselves programmers but can barely program is pretty astounding. You would be shocked how many times a candidate has made it through the resume screening and phone interviews only to get to the coding tests and completely bomb them.

Because of this, I would recommend sending out some extremely simple coding tests to every candidate before contacting them for a phone interview. It really doesn’t have to be anything complicated, and the goal is not to prove that the candidate is an amazing coder. You just want to make sure they actually know what coding is. It is sad that this is necessary, but simple “Hello World” online tests should do the trick.

Sending out these simple tests early on will help keep you sane throughout the interview process. There is nothing worse than investing time and energy into screening a candidate only to figure out that they have no idea how to do what they claim later down the line.

4. Hiring without test projects

This can be the kiss of death. You must see how a candidate actually works before extending an offer. Ask to see a portfolio while interviewing or look at codes they have contributed to on open forums like GitHub. This will give you a good picture of their work habits, but you can never be sure until a person actually joins your team. Therefore, it is extremely important to see how top candidates work with you and your team before making it permanent.

You can do this in one of two ways: give final candidates test projects to work on or hire the candidate on a consulting basis. Either way, you should have the programmers that you choose work on an actual piece of work that you need done right away that will contribute to your actual project. Don’t waste your time or theirs by making up unnecessary projects.

If you choose to set this up as a consulting gig, pay candidates at an hourly rate and give them a project that is clearly defined. The ideal project is something that can be done in a few days or maybe a week. For this stage, you can have candidates come into the office or work remotely depending on needs and location. Test projects can have a similar set up.

Another option is to include a probationary period in your programmer’s employee agreement. This way they can come on board with your team and you can reevaluate in a few weeks or months.

5. Looking for rockstars

It takes a team to create great software, not just one superstar programmer. When hiring, many people make the mistake of blowing all of their resources on one great programmer instead of developing a great programming team.

Having one great programmer backed by a group of second-rate programmers can be destructive for any project. A great programmer thrown in with a bunch of mediocre programmers will have to spend much of their time going back and fixing errors made by team members.

It is also likely that these “rockstars” will come with an ego. Instead, you want to hire professional, team players. This will create a positive team environment, and you will end up with a much stronger product in the end.

In Conclusion

Instead of making these five mistakes, look for well-rounded programmers, do your homework, check for basics early on, give test projects, and focus on hiring a great team. There are plenty of hiring guides available online, and it can often be helpful to talk to someone who has gone through the hiring process before. Keep you wits about you, and avoid hiring anyone until you find a truly great fit.

image source: http://www.theinfohunger.com/top-ten-programming-languages-learn/