How to Hire Developers
I. Check for Basic Fit
Begin by writing a detailed job description and posting it to a job board. Once you’ve begun receiving applicants, your first task will be to determine which ones are worth following-up with. Developers with too little experience, a lack of required skills, or a mismatch of other requirements such as salary expectation, locale, or sponsorship requirements can be ruled out immediately. Be sure not to discount developers who don’t have experience with your particular technology stack unless you have need of a specialist for some reason. A developer who is experienced with Oracle databases, for instance, can readily adapt to a role utilizing a MySQL database. A developer skilled at Java should have not problem working with software written in Golang, for another example. If you’re not sure which technologies a project should be using — ask your candidates. They’ll typically have strong and differing opinions. What their specific opinion is won’t typically matter: what matters is the reasons they give you. After speaking to several it should be clear who’s choosing the right tool for the job versus who only has a hammer and wants to treat every problem like a nail.
This is also a good stage to screen for people who are not paying attention to detail. If you’ve asked for several specific details from applicants in your job description and the developer hasn’t answered them, they may be unlikely to treat your software with much care either. If you’ve asked for a cover letter, resume, preferred means of contact, and salary requirement for instance — and the developer only provides a resume — then they may not be a great fit. On the other hand if they’ve only skipped the salary requirement they may be shy or weighing their options. Use this step to sort your list, but don’t rule people out over simple missteps.
II. Conduct a Smell Test
Call the candidate. Do not email or send an instant message, unless it’s to indicate you’re interested in speaking more and ask when they are free to talk. If the candidate is based in another country or will be working remotely, it’s fine to ask for a Skype or Google Hangouts session. When using videoconferencing software, let the candidate know that communicating via voice-only will be fine, unless they are interviewing for a client-facing role or you have some other reason for wanting to see them face-to-face.
Your call should last five to fifteen minutes and its purpose is to get basic introductions out of the way and make sure there is not a mismatch between the expectations of both parties. Introduce yourself. Ask if they’re still ready to speak now, and rehash the basics: The company’s business, your role in it, the role you need filled, and ask the candidate to introduce themselves and talk about their pertinent experience.
This is the time to get basic expectations out of the way: Salary requirements, work location, hours, benefits, and any clarifying questions you may have for the candidate. For example: “I don’t see git on your resume. Is that something you’re familiar with?”
The other purpose of this call is to make sure there isn’t something obviously wrong with the candidate. You may find once you have a candidate on the phone that they’re unable to speak intelligently about technologies they claim to have years of experience with. They may have a bad attitude. They may have special needs you’re unable to accomodate. Or they may simply have a bad habit you know you’d be unable to cope with in close quarters for long periods of time. This is your chance to conduct a “smell test” and make sure you wouldn’t be horrified to work with this individual.
This is also the time to answer their basic questions and inform the candidate of what steps are involved in the remainder of the interviewing process, should they continue. Be sure to go over details of how long it will take, who they will be meeting with, and details of the process. For example, “If you’re selected to continue to the next round, you’ll be meeting in-person with myself and our Director of Engineering for a two to three hour interview where we’ll go over your experience in a bit more depth and ask you to solve a technical problem on the computer.”
III. Test Skills
This is the crux of the interviewing process. At some point you have to determine if the candidate will be able to fulfill the role your business has need of. The only way to do this reliably is to give them a task they would need to complete in their day-to-day role at the company. Multiple choice questions, CS whiteboard problems, or brainteasers are not effective at screening for candidates. Remember: Your objective is to determine if this candidate would perform well at solving the sort of problems your business has. For example, if you’re building a calendar application, a good test might be to ask the candidate to develop a function or program that tells you the day of the week a given date falls on. Or that tells you the number of days between two dates. For senior-level applicants with verifiable work history it’s fine to ask specific questions about how they would solve the problems your business faces and gauge how intelligently they can speak about their solutions. It’s also fine to administer a basic coding test, but remember: When faced with an unfamiliar problem in reality, both the developer with 20 years of experience and the developer with two years of experience will begin their solution with Google. The only difference is what they may be searching for and how many problems aren’t unfamiliar. Because of this, it’s fine to let developers look things up during an interview as long as they’re not searching for a solution to copy-and-paste.
When administering a coding test, give the developer some time and space to solve problems without feeling watched or pressured. It’s difficult to distill a life’s experience into a couple hours: Let them engage in their process naturally. Ask them about their thought process and why they chose to solve the problem a certain way, especially if they’ve done something unusual. Sometimes this gives you insight into someone’s expertise — or lack thereof. A face-to-face meeting like this — whether at the office or via video conferencing software — should not take more than three to four hours, except for key personnel such as a CTO, VP, or Director of Engineering.
It’s also fine to administer a take-home test if you’re pressed for time or the candidate will be working remotely. Take home tests should also not take more than three to four hours unless you’re willing to compensate the candidate for their time. Trial contracts are perfectly legitimate ways of validating a candidate’s skills or fitness.
If you’re not a technical person or you’re unsure if someone will work out, you can always offer someone a role on a contract-to-hire basis. Make sure you lay out clearly the criteria for success. Remember: Nobody wants to leave a good role for a contract which may or may not work out, so try to be up-front with people early in the process if you intend to test people this way. You’ll also be more successful if you’re flexible about allowing the candidate to work remotely in their spare time during the trial phase. Respect your candidate’s time: This person could be a wonderful asset to your business for years to come, but not if you start your working relationship on a bitter note.
IV. Check References
Employers and managers often prefer to skip this step, but it’s a crucial failsafe. Although our increasingly-litigious society often precludes anyone from speaking ill of another’s work performance in a formal setting, you’ll be able to gauge by a person’s reaction just how well they respect a former coworker. A coworker who was forgettable or worse might be spoken of in terse, formal terms, whereas someone who is well-liked or respected will elicit effusive praise or enthusiastic responses. This can tell you a lot about a person.
V. If You’re Lost, Hire an Expert
Hiring is never easy, but it’s always crucial to a business’ success and growth. If the thought of handling hiring on your own is daunting, there’s nothing wrong with bringing in a professional.