While evaluating skills is certainly a very important part of evaluating job candidates, there’s much more you need to do to hire the right developer.
When you are hiring new developers for your team, do you start thinking about how to best evaluate their coding chops? While evaluating skills is certainly a very important part of evaluating job candidates, it’s not the only criterion at what will make the candidate, team, and organization successful in their mission and goals. This article explores all the key criteria in making a successful developer hire.
Recruiting and hiring is an expensive process, taking hours of people’s time to recruit, interview, hire, onboard, and train developers. Hiring a person that is a poor fit for the job can be a significant setback.
When hiring a developer, adapt the process to your business
Recruiting, hiring, and interviewing techniques must to be adapted to your business’s size, culture, location, job responsibilities, and other factors. What works for Google and Microsoft isn’t fully applicable to a startup looking to hire its fifth developer, an enterprise seeking a software architect to lead application rationalization, or a small business that’s looking to develop mobile applications. And if your organization doesn’t hire a lot of software developers, the techniques used to recruit developers are likely to be different and potentially more challenging than for hiring for other roles.
Hiring the right developer requires some marketing and sales techniques to pique a developer’s interest and strong interpersonal skills to recognize quickly whether candidates will be good fits for the team. It often takes a developer to hire a developer, and having technologists directly involved in the full recruiting process is a strong necessity compared to hiring for other business and technology roles. This hiring collaboration with developers may be a new concept for technologists, in-house recruiters, and human resources staff tasked with filling open positions—but you should do it.
What follows are seven specific steps to take when hiring a developer. Be sure to adapt them along the lines just outlined.
Step 1: Define who you are looking to hire
You lead a team that’s been tasked to develop and maintain several customer-facing mobile applications that were developed using Angular.js. What’s the first step you should consider in the recruiting process?
It’s very important for leadership, the hiring manager, and the development team to be on the same page about who they are looking to hire, what responsibilities will be assigned to this person, what the expectations are over how will get the work done, what primary technical skills are required, and how the person’s success in the role will be gauged.
There are several questions worth considering:
- Is this developer one of many developers working on the web experience, or is he or she working with a cross-functional team?
- Will he or she be expected to set development standards or expected to follow existing standards and contribute to their evolution?
- Are you developing cutting-edge user interfaces and need someone with advanced skills?
- Will you be working with specific libraries and toolkits?
- Is the primary mission to work with an existing large code base and make ongoing enhancements to existing applications, or is this developer going to be breaking ground and largely developing new applications?
Answering these questions should help the hiring team align on the personality type, skill level, primary skills, and workstyle of the ideal candidate. It also shapes how to describe the mission, role, and working environment to potential candidates. Without all this agreed upfront, the job description, recruiting process, and interviews are likely to be murky and lead to longer hiring cycles and confused candidates.
This early discussion is also a good place to confront the team about individual biases. It’s not that biases are necessarily bad, but that they must be recognized so they can be factored into the evaluation and not silently lead you down a specific, perhaps unwanted path.
Research shows that diverse teams are smarter and more innovative. George Mashini, CTO at development platform provider Quick Base says, “We focus on diversity because it brings us different points of view. Compared to a traditional development shop, Quick Base is much more diverse with regard to age, tenure, and gender. Because there is a creative, artistic side to development, having different viewpoints—different folks who view the world differently—makes the team that much better. Having different points of view from a human perspective has been the key to us being able to produce really innovative software.”
When defining what you want in a candidate, be sure to make sure to capture some selling points to make to the candidates you ultimately interview. What do you have to offer? Why should a person work with this team and on this project? What stands out about this role versus others that he or she may be considering? Attracting candidates who want to work with you, on your project, with your challenges is critical in a competitive job market.
Klavs Miller, CTO at job site Dice agrees, “With tech unemployment as low as it is, candidates know you need them; 2019 is a time to turn attention toward candidate experience by bringing the human element back into the fold. In addition to communicating a vibrant culture through a well-defined employer brand and using the right recruitment marketing channels, be sure to share as much information as possible about the types of projects future candidates would be working on, technologies they’d work with and the caliber of the team they would be a part of.”
Step 2: Develop a focused job description
You’re now in a better position to draft a job description having consensus on the role from the team, a better idea of the quality of person you are trying to recruit, and a marketing message to attract top candidates.
Writing job descriptions is a skill that most technologists do not possess. It’s easy to introduce biases in job descriptions that inadvertently turn off strong candidates or are too vague and drive an unmanageable number of responses that require screening. When possible, hire an expert skilled with writing job descriptions to handle this task and provide them the details agreed on by the development team.
Use examples to draft the details. Consider these ten best developer job descriptions that contain targeted details of ideal candidates without being overly prescriptive. Look on job sites like Indeed, Dice, LinkedIn, Monster, and CareerBuilder to find other expressions.
Step 3: Formulate your candidates screening
It’s fairly disconcerting to candidates to show up to interviews and find ill-prepared interviewers, be asked pointless questions, or be put through a series of redundant technical evaluations.
Conducting an interview process requires an explicit strategy defining each interviewer’s role, selecting what types of questions will help differentiate candidates, and deciding how feedback will be shared with the interviewing team. It also requires a commitment to an efficient process because many candidates will be turned off by long-running interview processes or ones where feedback isn’t provided to them in a timely matter.
Assign roles in the interview process: Who is tackling soft skills such as communications and collaboration? Whose role is it to sell and market the company, role, and projects being assigned? If you’re going to have multiple people technically screen candidates, review who is covering what skills and whether their individual approaches are fair, are appropriate for the skill level being recruited, and can efficiently determine top candidates.
Step 4: Listen, learn, and collaborate during the interview
Regardless of the role and skill level, each interviewer should be asking open-ended, thought-provoking questions to begin a dialog with the interviewee.
When I hire, my most important interview question is my first, where I ask candidates to tell me about something they are working on. My objective is to get them talking in a comfort area.
If they’re strategic in their answer, they will pick an area that’s aligned to the role they are interviewing for. I’m looking for their ability to tell a story and whether they can explain why they are working on it. I’m hoping they go into some technical details and challenges while also seeing if they are careful not to divulge confidential information from their current employers. This question an ice-breaker that can lead to lots of other questions and discussion areas that help me understand who is sitting in front of me.
There are other good opening questions. Julie Furt, senior vice president of worldwide consulting and training services at data-integration vendor MarkLogic, suggests asking, “‘Where are you in your job search?’ It’s a good ice-breaker but it also gives me a sense of how far in the exploration and research process the candidates are. Ultimately, I’m looking to understand what motivates them in the workplace, so I can assess if there is a likely fit between our technology work and their work style and aspirations.”
George Mashini from Quick Base also suggests that ”understanding what their interests and intellectual curiosities are helps you understand how they would fit in your organization, and gets you a head-start on the interview in terms of what to ask with regard to fit.”
I also recommend discussing the work style and practices of the candidate. Someone who has only worked in waterfall development is going to have a major adjustment to agile development practices. Candidates who work remotely should share how they’ve been successful and their challenges collaborating with centralized teams. Some developers need mentoring, others like to mentor, and others prefer working alone. Your questions should be designed to evaluate whether the candidates fit and enhances the working style of the teams they may join and what may be areas of change for these candidates to learn.
Step 5: Focus technical evaluations on how candidates solve problems
When it’s finally time to assess technical skills, there are several tools and techniques teams and interviewers can use.
Having the interviewee complete one or more coding challenges using sites like Coderbyte, Codewars, or CodeFights is one approach to see how a developer attacks a problem and whether their code works, meets implementation standards, and is understandable. Some developers may have public Git repositories or participated in a TopCoder challenge where they can legally share their applications and code with prospective employers. Others may be using learning platforms like CoderByte or HackerRank where they can share their credentials.
Whether you use these tools or not, it’s important to engage the candidate directly on their technical skills. I like candidates to walk me through the details of how something they developed actually works. I often ask candidates to whiteboard the process and to show me specific areas that they worked on. We then have a deeper conversation on coding practices, tools used, version control, and development environments to expose whether the candidates’ experiences are close to how they would work with the team.
Quick Base provides a coding challenge, gives candidates several hours to complete it, and then asks them to present their solution to their peers. Mashini notes, “We don’t just judge it on the technical capability of it; there’s also a creative part and how they accept feedback.”
If you are interviewing more junior developers, MarkLogic’s Julie Furt offers this suggestion: “We have the candidate solve hands-on-keyboard coding challenges with a mentor/interviewer in the room to provide the challenges, answer questions, and help coach, if needed.”
Ed Featherston, a distinguished technologist, suggests asking how developer candidates view the roles of development, support, and operations. “I have them walk me through some development they were most proud of, why, and was there anything they could have done better.” Guide this discussion on how the candidate approaches technical debt and share examples on working with operational teams on incidents and defects. For more senior developers, you want to know that they have firm understanding on writing operationally stable, secure code and have a collaborative mindset on partnering with support and operations.
Whatever your approach and tools to technical evaluation, consider these guidelines:
- Ensure your test is applied fairly to all candidates and is reasonable for the targeted skills.
- If you want to see code, make sure you’ve given the candidate sufficient time and tools to address the challenge.
- Select problems that require creative thinking so you can evaluate coding and problem-solving skills.
- Look for evidence that the developer knows and applies coding standards. Did the developer add unit tests, check boundary conditions, log messages, apply reasonable naming conventions, and apply other best practices?
- Most development work requires people to work in teams and win acceptance of their solutions, so having candidates present in later stages of the interview process is recommended.
Step 6: Follow up with promising candidates
It’s common for organizations to have multiple rounds of interviews and several candidates that they put through the interview process. For any one candidate, it may take several weeks to months to go through the whole interview process. In the meantime, candidates are likely researching your company and exploring other employment opportunities.
It’s critical that the hiring manager apply tactics from sales teams to keep the candidate “warm” and interested. One approach is to continue the interview dialog through emails. Better candidates will follow up after interviews with a thank-you email to the interviewees. Instead of ignoring this message, use it to continue the dialog.
Follow up with a question from the interview. Share an article and ask the interviewers opinion. If your organization shared some recent news, or if your team reached a critical milestone, share this with the candidate. Continue the dialog to make sure the candidate knows he or she is a top contender.
Step 7: Seal the detail by marketing the team and mission
As you narrow down the candidate list or start making offers, it’s important to market and sell the role to the candidate. (You should have figured out your “sell” in Step 1.) Chances are that if you’re interested in the candidate, then there are other employers competing with you.
Consider the different ways to reward top performers and motivate developers and apply similar approaches to winning over the candidate. Yes, aspects of the financial offer and other incentives will be critical, but the candidate also wants to know his or her efforts will be recognized, that there’s opportunity for growth and promotions, that there’s a desire and tools available for individuals to learn, that the organization is open to experiment and taking calculated risks, and other cultural incentives.
In addition, candidates want to understand and buy into your organizations and team’s mission and goals. Most developers don’t sign up just to solve problems and crunch code; they want to know there is meaning and value behind their efforts and accomplishments. Make sure to sell and win this mindset especially with developers that have competitive offers.