If you’re in the market to hire a software developer, you have likely discovered – or will discover – some of the challenges associated with acquiring tech talent. The demand for freelance software developers is at an all-time high, making it especially difficult to find and hire the best people right now. This doesn’t change the fact that who you hire is one of the most important business decisions you’ll make for your company. A bad hire can waste time, set you back financially and negatively impact your team’s morale.
Needless to say, getting the right people onto your team is a necessary challenge, and it all boils down to the effectiveness of your hiring strategy. We’ve learned through experience that acquiring great talent comes from having a great process in place. To help you with this, we’re sharing our hiring guide so you can have a better understanding of how our process works behind the scenes.
“Acquiring the right talent is the most important key to growth. Hiring was – and still is – the most important thing we do.”— Marc Benioff, Founder, Chairman and co-CEO of Salesforce
Here’s what we’ll cover:
- How to Define Your Role
- How to Attract the Right Software Developers to Apply
- Evaluating Candidates: What Qualities to Look for in Software Developers
- Red Flags: What to Avoid When Hiring
- Where to Find the Best Software Developers
- How Much Does it Cost to Hire a Programmer?
- How to Improve Your Hiring Success
How to Define Your Role
An excellent hiring strategy starts with understanding the basics of the role you need to fill. Take time to visualize your ideal candidate, determine a budget and a timeline, and set the stage with expectations. This will create clear intentions for you and your team before you bring anyone new on board. It will also eliminate uncertainty for candidates and give them the opportunity to demonstrate their qualifications during the interview process.
Here are some steps you can take to define your role:
- Define the basics. What kind of software developer do you need?
- Front-end Developer
- Back-end Developer
- Full-stack Developer
- Mobile developer
- Map out the key requirements of your project:
- Which technologies are required?
- What is your budget?
- What is your timeframe?
- What level of seniority do you need?
- What other non-technical skills are required for the project? (English communication skills, management experience, etc.)
- Consider other expectations for the role:
- Cultural aspects, timezone and language fluency
- Tools you will be using for the project
- Your team structure and how will they fit into it
- What level of engagement you need from this person
With a solid understanding of the role, requirements, and other expectations, you’ll have a better shot at identifying qualified candidates during the interview stages. The next challenge? Getting suitable candidates to apply.
How to Attract the Right Software Developers to Apply
An in-demand software developer will receive hundreds of messages per month about new jobs. If you want top talent to notice and apply for your role, you’ll need to make it stand out.
A good job description will cover the key aspects of the role while also showcasing the project, growth opportunity, and company. In our guide to writing job descriptions, we describe how you can create one that checks all the boxes and communicates clear expectations with potential hires. If you’re looking to quickly connect with qualified and pre-vetted software developers, our job description template can help you get the ball rolling.
A thorough and accurate job description will help you filter out some unsuitable candidates. That said, it’s incredibly difficult to rely on a job posting as the primary conduit of getting great developers onto your team if you’re not working with a staffing service. You may have candidates that look great on paper, but it’s impossible to know until you have sufficiently assessed their personality, skills, and experience.
Evaluating Candidates: What Qualities to Look for in Software Developers
To find out if someone is a great software programmer, you often have to look beyond their coding skills. That’s because what makes them ‘great’ is the addition of specific soft skills. Our team has worked with many freelance developers over the years, and we’ve noticed the qualities that the best of them have in common are:
- Self-learning ability
- Task management
When preparing to interview remote software developers, it’s helpful to know how to assess these soft skills. We do this during the initial screening interview and also evaluate their English communication and experience and logistical suitability (time zone, availability, rate), seniority, leadership skills, and general cognitive ability.
Top Non-Technical Must-Have Skills: Communication Skills and Management Experience
Arguably two of the most critical non-technical qualifications we assess during the initial screening process are whether candidates communicate effectively and have sufficient management experience.
Good communication is essential for every job, but it’s vital for technical roles. If a developer cannot communicate effectively, they likely won’t be able to explain problems or suggest better solutions in a way that the whole team can understand. If a candidate can’t demonstrate an ability to communicate during an interview, they will also likely have issues communicating on the job.
It’s also a good idea to gauge how much experience they have managing themselves and working within a similar team setting to yours. Is this candidate someone who will need to be carefully managed? Or do they demonstrate the ability to be self-sufficient and responsible?
The following questions are some examples of how to assess a developer’s experience in both communications and management areas:
- Have they worked for big corporations or startups?
- Are they more comfortable working on small or large teams?
- Are they more used to working on projects with a clear scope or changing requirements?
- What is their experience with agile methodologies?
- What are their communication preferences?
- How will they report their progress and build trust with their team?
Technical Must-Have Skills and Experience
We also conduct a technical interview that consists of general technical questions and a live coding exercise. During this interview, we assess how well the candidate can code, how clean their code is, and their general technical knowledge. We also evaluate:
- If they follow best practices
- How they prepare their development environment
- Their project folder structure organization
- Whether they are looking beyond the basic test
- If they complete the test in time
- How they name their variables as part of clean and readable code for maintenance purposes
Learning the details of a candidate’s experience can also help determine whether they are as qualified as their application claims. How senior is this person? By asking candidates to share information about their technical experiences and personal preferences with specific technologies, you will gain a better understanding of how much they know. The following points can also help you get a sense of a candidate’s technical skills:
- Ask for examples of previous work. Can they showcase previous products they’ve built and send over code samples or screenshots of different enhancements?
- Ask for references. Talking to entrepreneurs or CTOs they have worked for will give you an indication of their experience and intangible qualities, like problem-solving capabilities and creative perspective.
- Conduct programming challenges. Although most challenges involved with real work do not resemble the programming challenges found on sites like CodeEval, if a developer can succeed at some of the more difficult algorithmic-based problems in a short period of time, you know you are dealing with an intelligent person who knows their computer science.
It’s worth noting that giving an algorithmic-based problem is not our personal preference for evaluating a developer’s technical abilities. The trouble with this type of test is that developers rarely actually write advanced algorithms on a typical project. Instead, we ask developers to complete a task similar to the work they’ll do in the project or role for which they are interviewing. We try to customize each test to cover as many of the key skills needed for the role as possible in about an hour. Additionally, we have an experienced technical interviewer sit in with them to give feedback, ask questions and listen to their thought process.
This approach allows us to assess if a candidate can understand problems clearly, how well they respond to feedback and whether they can do the work needed for the role.
If you don’t have a good technical understanding of the project and role, enlist some help from someone who can carry out this part of the vetting process. People who have coding experience can often differentiate potential in software developers more efficiently, especially as things get more technical.
Red Flags: What to Avoid When Hiring
Throughout our time interviewing and assessing candidates, our team has noticed certain signals that sometimes suggest a developer lacks important skills. Though these are not deal-breakers, they can help determine if a candidate is a good fit for your company. Here are some factors we take note of during the initial screening and technical assessment:
If and how they use Google and what type of things they search for:
We approve the use of Google, because let’s face it, most developers use it day-to-day. That being said, analyzing how they use it will tell you a lot about their seniority level.
- Referring to documentation: this is indeed a good practice, but following every single step during the interview or trying to replicate tutorials might be somewhat concerning. On the other hand, if the candidate runs some fact-checks just to be sure about the next move, then that’s a different story.
- Searching for functions: Searching for functions might mean that the candidate needs a refresh or they may just be looking for syntax. This happens a lot with CSS, for example, and it can be trickier to detect if they know what they are doing or if, on the contrary, they’re just trying things on the fly. You can try to figure this out by looking at how much time it takes them to accomplish the task at hand.
- Q&A sites: It’s okay for developers to use Q&A sites like StackOverflow to solve problems. However, how they evaluate code example and what they do with that code once they bring it over into their own work is important. Part of keeping a codebase clean is avoiding pasting code just because it works.
- Are they Googling every move? This is definitely a concern as it might speak to the candidates’ confidence level and lack of experience. It also might demonstrate that they don’t have a deep knowledge of the specific technology and indicate that they might not be able to advise you further than the scope of the test.
If they copy and paste from old projects:
Instead of using Google, some candidates rely on code from previous projects where they have solved similar problems. Allowing this can sometimes be a bad practice because it’s difficult to know if the code being transferred was actually produced by the candidate or by someone else. In these cases, ask what decisions were made while that code was written and see if they can walk you through it accordingly. Remember, during a coding test you want to see how they code, and not how they assemble pieces! That being said, it’s okay if they want to take a peek at something they have already done in the past.
How they respond to feedback or suggestions:
It’s a good idea to offer candidates feedback at the end of the interview, whether it’s an opinion about what they produced or suggestions for improvement. Everyone has a different coding style and there typically isn’t one only way to solve a given problem. However, when a developer can take feedback well and demonstrate a desire to improve, it reveals a lot about their character. The alternative (not taking feedback graciously) can indicate that they may have a bad attitude or may not be a team player.
Red flags that make us pump the brakes: These are often linked to a candidate’s soft skills (i.e., communication skills or attitude). Here are some red flags worth noting:
- A Bad Attitude: A good way to gauge this is whether the developer seems genuinely interested and engaged with your company, your project, and the role you’re looking to fill. Eagerness is a good indication that they will be excited to join the team and contribute meaningfully.
- Evasive Answers: Clear, concise answers are a good indication that you are getting an honest and well-thought-out response to your questions. If the candidate is beating around the bush repeatedly, it may signal a lack of specific skills and experience.
- Time Commitment: If you learn that the candidate is already working a full-time job and is looking to work on your project as a side gig, then it’s likely that the full-time job will take priority over yours. Unless you only need someone for a limited amount of time, this can cause a developer to burn out and potentially neglect your project.
Again, not all of the points above mean a candidate is a bad software developer, but taking note of these may help to determine whether they are a good fit for your role.
Where to Find and Hire the Best Software Developers
There’s no doubt that the software development industry has become a crowded place, and knowing where to go looking for talent is not an easy task. Depending on your requirements, you can hire from online staffing platforms and marketplaces or source candidates directly. Your choice may depend on whether you want to carry out sourcing and vetting candidates yourself or if you’d prefer to have this done for you.
Hire a Software Developer From Staffing Platforms
Many of the best software developers tend to gravitate towards staffing agencies with rigorous vetting (as opposed to platforms that don’t thoroughly vet) because these platforms tend to place them on challenging projects with quality clients. Working with adequately vetted talent also takes a considerable risk away from you, as a bad hire can be an expensive and time-consuming mistake. Here are some benefits of hiring through a platform like Scalable Path:
- Affordable costs. You can significantly reduce costs by avoiding traditional expenses associated with full-time employees (recruitment, benefits, termination fees, etc.). All expenses are factored into the hourly rate that you and the remote contractor agree on. For information about hourly rates, check out our guide on the cost of hiring developers.
- Curated talent pool. A significant benefit of staff augmentation is gaining access to a more extensive talent network. Instead of searching for candidates to apply, you can quickly connect with developers with the right qualifications and expertise by tapping into large, concentrated talent pools.
- Fast recruitment. Traditional hiring practices are slow and lack flexibility. If you need to extend your team in a short time, a premium staffing platform can support rapid hiring and quicker project start times.
Hire a Software Developer From Task-based and Freelance Marketplaces
Task-based and freelance platforms like Upwork, PeoplePerHour, and Freelancer.com work more like job boards in which you post a job, and individuals or companies in the platform are notified automatically or can find and apply to your posting.
These sites often rest in a “race to the bottom” approach to rates, which is why experienced software developers don’t often stick around on these platforms for long. However, that doesn’t mean you can’t get good value here, but you will need to spend a lot of time filtering and vetting candidates yourself, which may or not be something you’re willing or able to do. Perks of choosing to hire through these marketplaces include:
- Short lead times. Less time hiring can mean quicker time to market.
- Affordable costs. Ability to hire any developer from across the world, using dollar arbitrage to take advantage of price differences between two markets.
- Ideal for smaller, short-term projects. Great for micro-tasks and non-core short-term projects to reduce overhead and increase speed to market.
Hire a Part-Time or Full-time Software Developer In-House
Depending on your company’s needs, hiring in-house may be a better option. If you have the time and budget, this approach can sometimes make more sense for full-time engagements or more senior and core leadership positions like a CTO. However, there are reasons why companies have started to shift away from this traditional hiring practice. Here are some things to consider if you’re weighing the pros and cons:
- Time. If you want to hire a full-time software developer, you may find it takes a lot longer than you expect. According to this study from Glassdoor, the average time it takes to interview and hire a software engineer in the United States is 35 days. It can take many weeks or months to source qualified candidates, conduct interviews, and get an offer accepted.
- Cost. The cost of hiring good technical talent in the United States is skyrocketing, partly because of the combination of high demand and low supply. Also, on top of a steep base salary you will need to pay significantly more in other related costs and benefits (see Chart 1 for a complete cost breakdown).
- Flexibility. Hiring someone in-house can restrict your team’s flexibility since it often requires a long-term commitment between you and the person you hire. It also means slower start times and more complicated offboarding as well.
- Sourcing quality talent. Finding top talent is difficult mainly because they are usually employed by larger companies. In-house hiring means you’ll need to do all of the sourcing and vetting on your own (if you don’t hire a recruiter to do so). At best, this can be a significant distraction and at worst can be a waste of time and resources if your team does not have the proper expertise to carry it out. Even if you do hire a recruiter, many of them don’t have the technical skill to properly vet software developers.
If you have the resources and desire to carry out the sourcing and vetting process yourself, I’d recommend tapping into your network as a first step. Often, you can have better success hiring great people by finding them through your connections. If you have no luck there, you may discover talented developers on sites like StackOverflow or Github.
How Much Does it Cost to Hire a Software Developer?
The cost to hire software developers will vary depending on the type of engagement model you use. For instance, if you want to hire someone local as a full-time salaried employee, the cost will be significantly higher than hiring someone remotely.
The average annual salary of a Senior Software Developer located in San Francisco is $150,000 per year. The average rate to hire a software developer with the same level of experience from Scalable Path is $55 per hour. Here’s how the costs break down:
If you’re looking to hire a software developer on a remote and hourly basis, your options for cost and flexibility become greater. Hiring someone from a global marketplace means spending significantly less. We conducted a study to analyze the cost of hiring software developers from our network and found that the average hourly rates of talented software developers in the United States are about 50% higher than those of similar developers in Latin America and Eastern Europe.
How to Improve Your Hiring Success
The best developers have a healthy balance of strong technical abilities, communication skills, and management experience. They are also good at setting expectations, delivering continuously, and creating a constant rhythm of output that builds trust and reliability with their team.
Ultimately, it isn’t easy to know whether you’ve hired the right person until you’ve worked together. When you bring them on board, reiterate your expectations and goals for the project. This verbal step is crucial to open the door for communication and ensure you are on the same page from the outset.
Hiring and building a team is truly one of the most challenging tasks for hiring managers. Finding people who fit your team well and have the right qualities and qualifications will require a complete and thorough candidate assessment process. Hiring can be fraught with challenges. If you decide to vet candidates yourself, make sure you are comfortable with the interview process, have the time to carry it out and have someone with the required experience and skills to help you.
Key Takeaways to Hire a Software Developer
- Set yourself up for success by writing a solid job description that defines key requirements and attracts suitable candidates.
- If you choose a staffing platform to help you hire a software developer, ensure you understand what services they offer. Each platform is different, so choose one that is the right fit for you and your project.
- Quality developers share specific characteristics. Knowing what these are and how to identify them will improve your chances of hiring the right people.
- A good hiring strategy consists of a thorough vetting process that tests both soft and technical skills. Choose whether it makes sense for you to hire a company to carry out your vetting process for you or invest the time to do it right yourself.
Are you looking to hire a remote software developer?
You’ve come to the right place. Every Scalable Path developer has been carefully pre-vetted by our technical talent team. Contact us and we’ll have your team up and running in no time.