Thursday 2 July 2015

How to Find and Hire the Right Programmer for Your Startup

post thumbnail

The secret to hiring the right programmer is to look for smart people.

When you are writing code, every single line requires the programmer to make quick decisions. Whether it is about what line to write or what function to add, there are multiple decisions involved in each line of code. So when you are looking to hire a programmer, you need to look for someone that you can trust with these decisions.

Decisions are judgment calls, and if you are smart, it’s more likely that you will make the right call. That is why it’s extremely important to look for smart people when interviewing candidates for your programming job.

Smart people will not only get the job done well, but they will also attract other smart people. Contrary to popular belief, most programmers don’t want to be the single rockstar on a team of other programmers that cannot keep up. Smart people want to work with other smart people. They also want to spend their time with other smart people. So if you make sure to hire smart programmers in your interview process, they will get the job done right, and they will make other smart programmers want to join your team.

The hardest part, however, can be actually finding these smart programmers and weeding them out from the rest.

Resume Screening

Unfortunately, there is really nothing on a resume that shows whether or not a candidate knows how to code. Resumes are pretty useless for the process of hiring a great programmer, but they are a necessary evil in the job world. How else are you going to find programmers that you might not have known about?

You should not use this part of the hiring process to try to sniff out great programming skill. A piece of paper is not going to tell you that. However, there are a number of things that you can look for in the resume stage that will at least help you narrow down your pool.

First, you should look at the quality of writing. Great writing indicates strong thinking skills and an ability to organize and present ideas. It can also be useful to ask candidates to submit a cover letter along with their resume in order to gauge writing skills.

Typos are a bad sign in both resumes and cover letters; they indicate that the candidate is not detail-oriented and does not double check his or her work. Another red flag is a generic version of a resume or cover letter that could be sent to any company, which shows a lack of interest in your company on the candidate’s part.

Other things to look for in the resume stage include passion, smarts, creativity, and previous screening. If the candidate comes from a prestigious university or impressive company, then they have already made it through intensive screening processes for those institutions. Creativity is harder to standardize, but look for anything that makes a candidate’s resume stand out from the rest. GPA, activities, and past experiences can be indicative of passion and smarts.

If you are looking to hire an intern who will hopefully turn into a full time employee, it is best to look at only juniors in college. If you only hire juniors for internships, then you can extend them an offer at the end of the summer, and you will not have to worry about other jobs influencing their decision.

Phone Interviews

Like resumes, phone interviews should not be used to screen for direct coding ability. Instead, you should use phone screens to judge whether or not the candidate is smart. Do not worry about getting into too much detail, but have conversations about things like algorithms and data structure. You might also ask a candidate how they would build something specific using code. These conversations will allow you to see if the candidate is highly technical.

Many successful phone interviews are broken down into three parts. First, ask the candidate to talk about a recent project he or she has worked on that is especially cool. This will allow you to hear about the kind of work the candidate has done, and you will be able to listen for passion and drive. Second, present your candidate with a design problem so you can see their thought process. Finally, allow your candidate to ask you questions about the company.

In short, phone interviews are a great way to discuss technical topics that do not require writing code. This conversation should be strictly in English—no coding languages yet. Remember, you are trying to judge whether or not the person is smart, and this stage of the interview process is an excuse to have a technical conversation, which gives you the opportunity to make this judgment.

Remote Code Tests

Code tests will give you the opportunity to screen for coding ability. Finally! You can do these interviews in person or online. If you choose to give remote code tests, watch the candidate’s computer as he or she works. Whether it is remote or in-person, ask your candidate to explain the thought process behind the code they are writing.

This stage is extremely important, as it allows you to see whether or not a candidate is actually a good programmer. This is the stage to sniff out novice versus expert programmers, so it is easy to be quick to judge. However, remember that this is an interview setting and your candidate is probably nervous.

On one hand, see how they act under pressure. On the other, extend them a free pass on being nervous and realize that they might make small, stupid mistakes that they would not make if they were not being watched by someone with the ability to make or break their career. Candidates are not typing into a compiler that might catch these mistakes, so it’s ok to excuse things like typos and simple syntax errors.

In this coding test, you can ask candidates to use a standard language that every programmer should know, or you can let the programmer choose the language they are most comfortable working with. Either way, see how they talk through what they are thinking—do they have a plan? What is their thought process?

In Person Interview

To ensure little error in hiring, each candidate should go through at least 5 interviews before he or she is hired. The last interview should be saved for a senior manager or someone high up on your team.

When you are giving an interview, it can be helpful to avoid asking a question that you already know the answer to or asking a candidate to solve a problem that you have solved the day before. These kinds of questions will lead to biases towards candidates who gives the same answer you gave. Remember: you are looking for smart candidates, not identical candidates to you. The best team is made up of people that think in different ways.

It is also helpful to keep asking the same questions to different candidates. This ensures a fair process and helps you as an interviewer. By asking the same question, you begin to realize what to look for in an answer. You can also compare candidates more easily.

The goal with in-person interviews is still to decide if the candidate is smart and if they will get the job done. Similar to the phone interview, present a problem that acts as an excuse to have a conversation.

Decision Time

Only hire people that you feel 100% confident about. Sure, any process might present false negatives, but you would rather lose someone good than take a chance with someone that will not end up working out.

If you hire bad candidates, you will have to fire them later on, and you will have to clean up mistakes from poor performance. Bad hires become liabilities.

The options should always be “hire or no hire.” There should not be any “maybes” involved. If a candidate is a “maybe” then they are automatically a no hire.

Be absolutely certain someone is good before you hire them.

Over Complicated?

The hiring process is long, and it requires a lot of time and energy if you want to find the best programmers. But it’s even more of a headache to end up with a team of poor programmers. If you try to skirt around a thorough hiring process, you will only regret it down the line.

If all of this seems like too much, or if you do not know enough about programming to set up this kind of screening process, it might be best to turn to outside help. Reach out to a developer friend, or find online sites, like Toptal, that will take over the process for you. Toptal will not only connect you with freelance developers, but its team of engineers screens each developer for you as well. As a plus, you can work with these programmers first on a no-risk trial basis before deciding to bring them onto your team full-time. Other sites like Freelancer will provide job boards where you can post your project, and developers will apply.



from Darlene Milligan http://ift.tt/1HyQKcI via local SEO company
from Tumblr http://ift.tt/1C4ygR4

No comments:

Post a Comment