If this sounds like a complex task, it’s because it is. But don’t panic. This post will walk you through some guidelines to identify your specific needs, find the right candidate, and integrate them into your team smoothly.
How to Identify Your Developer Needs
The first step to staffing up for a custom software project is determining what kind of developer help you actually need. To figure this out, you need to ask yourself two kinds of questions: questions of timing, and questions of ability.
Questions of Timing
- How soon do you need this developer’s help? Immediately, within the month, or sometime next quarter?
- How well can you predict what this developer’s workload will be? This is especially important if you have an immediate coding need but aren’t as sure about next steps like deployment or support.
- Do you want this developer to help with one particular project, or a series of similar projects over a longer period?
- If you’re filling a specific need for one project, what is your plan to utilize this developer so they don’t sit idle once they have finished their work on that assignment?
Questions of Ability
- How specialized is the coding framework or technology you’re using?
- Do you want a developer skilled in one particular language or framework, or do they need to be able to handle multiple frameworks? What about separate technical tasks like tuning AWS environments or running QA tests?
- Are you sure you only need one new developer? Is it going to be easy to find the person you need, or are you looking for a highly-skilled unicorn?
- Would it be helpful for your developer to have other skills besides coding ability, such as an eye for visual design or a communications/writing background?
Once you answer these questions, it’s also worthwhile to ask yourself more practical questions about your budget and team dynamics:
Questions of Budget and Team Dynamics
- How much can you afford to spend hiring someone to fill your developer need?
- Do you have budget for a short-term candidate, or for a longer term commitment that may include salary and benefits costs?
- How flexible is your team with adding a new developer? Do you have the necessary desk space, hardware, and other overhead set up for this new role?
- Does the new developer need to work in the same room as your existing team? Do you have a remote access system in place with appropriate database access and a VPN?
- Who on your team needs to be involved with the hiring decision for your new developer?
By answering these questions, you have your ideal developer in mind based on skill set, time commitment, available compensation, and how this person will fit into your team.
How to Find The Right Developer
Now that you can picture your perfect candidate, you begin what’s likely the toughest part of the process: hiring the right person. This stage involves two main steps: searching for quality candidates, and ensuring these candidates are right for your needs.
Search for Quality Developer Candidates
Verify Developer Candidates’ Skills
So now you have a list of quality candidates. How do you make sure they actually have the skills they say they have? You can follow this step-by-step guide to hire software developers for more detail on sorting through cover letters.
The next step in your screening process should be a simple phone interview with any promising candidate. By asking them to describe their career and expertise in their own words, you can often perceive whether they sound confident and capable (or if they’re making it up as they go, trying to sound smart). This conversation is also a good chance to verify your candidate wants to work on the kinds of projects you need them for, which helps ensure a good fit.
If the phone screen goes well, the next step is having the candidate in for an interview. During this interview, it is not that important to quiz the candidate on how well they can answer technical questions. What matters more is having a candidate walk through his/her process so you can see how they solve problems, work with others, and fix mistakes. Can they talk intelligently about the architecture of a project they worked on? What design patterns did they use, and why? If they used 3rd party services or APIs, how did they integrate with them? Did they architect the application in a way that would allow it to fail gracefully if the service or API was down? One illuminating question can lead right into another.
Turn Words Into Actions
A classic way to have a candidate answer these questions is a white board test. Here you have your candidate model (draw) out a hypothetical problem or project: how his/her project would work, what tables they would have, what functions they would use, etc. Rather than writing code on the board, you’re asking them to visually depict how they would solve a lengthy programming problem. They are also free to talk through their ideas as they draw to fill in details verbally.
It might be tempting to give your candidate a take-home coding assignment, but this can take way too long and in the meantime they might get an offer from another company that doesn’t require such a test. In-house tests solve this problem, but they’re high pressure and (because they usually demand multiple hours during a workday) also demand a lot from your candidate. You want to show respect for a candidate’s time, and the white board test should solve this problem enough.
How to Hire the Right Developer
Now you’ve found your ideal candidate and verified they have the skills you need. It’s time to close the deal by ensuring they are the right fit for your company and processes in a team interview. The “right fit” here is less about technical skill (since you verified that in the previous stage) than ensuring this candidate’s personality, work style, and goals line up with your company.
Make Sure the Candidate Fits You
Make Sure You Fit the Candidate
Finally, ensure in the interview your candidate’s goals and career ambitions line up with your company’s immediate and long-term needs. If you need someone to lead development using a particular coding framework for multiple projects, you won’t want to hire someone who isn’t passionate about using that framework (even if they can use it with skill). Why? Eventually they’ll get bored with repeated projects using their less-favorite framework and look for a new job—or worse, phone in their work in that framework so the quality of your project suffers.
The right connection between your developer’s goals and yours will be evident if they want to continue to grow their career in ways that align with your company’s larger mission. For example, a developer passionate about teaching and documenting their knowledge could eventually fit well in a management position. Someone who wants to learn more about Amazon Web Services or other cloud environments will be able to collaborate with your cloud engineers during deployment of the developer’s code.
Hiring the Right Developer: Not Easy, But Worth It
In case it’s not already obvious, hiring the right developer is a lot of work; you have to identify your specific needs, find the right candidate, then integrate them into your team smoothly. While this isn’t a simple process, there is nothing like the energy that a motivated and talented new developer can bring to your team. The result is not only a coding project finished on time, but an exciting new addition to your company who will make a lasting impact.