The Definitive Guide to Hiring Elite Software Developers
TECH TEAMS, SOFTWARE DEVELOPMENT, HIRING MODELS | 13 May 2020
Finding and hiring high quality developers is becoming tougher and tougher for businesses across the world. There's a growing shortage in world-class tech talent available in the market and that's a situation that's not going to change any time soon.
Let's explore why.
First and foremost, every business globally is going digital in one sense or another. Some have moved digitally much faster than others. Nevertheless, they all need adequate technical expertise to transform digitally. This has naturally lifted the demand for development talent in the market.
Now let's consider the heavily funded startups. These businesses are always scouting for the very best-in-class talent and have the money to play with. With attractive salaries and working conditions to match, they are a powerful draw for developers looking to challenge themselves and work in truly innovative environments.
That's not to say that all the top tech talent is necessarily interested in moving to the key tech hubs and incur expensive living costs as a result. Many still prefer to remain in their home countries and work remotely instead, in many cases still commanding healthy freelance or contracting rates.
Finally, the tech space is changing so rapidly and new skills need to be learnt all the time. Some developers are comfortable keeping up with the pace of change, others find themselves behind the curve and quickly become less valuable from a hiring perspective.
The reality is that the process of hiring software developers today is constantly evolving. The needs of companies evolve at a similar pace and their hiring criteria is often reflective of that.
Why Hiring Specialist Developers Is Becoming More Difficult
Companies in the market for technical software developers typically have a clear understanding of what they need, but often struggle to find the right candidates. In an increasingly competitive market, there are more companies than ever hiring development talent and so getting the right person through the door is hard.
With technical capabilities playing an increasingly important role in overall business success, many companies are looking to scale their in-house capabilities in order to compete in their sector.
As the fight for technical skills grows more fierce than ever, companies are having to rise to the challenge, offering increasingly lucrative salaries and hiring packages to access the talent they need.
Naturally, this is creating problems for smaller organisations and scale-ups, without the resources necessary to secure the talent they require, many are forced to turn to alternative hiring options.
Remote software development teams and team extension relationships are becoming increasingly common as these smaller companies seek alternatives to find the talent they need to grow.
Beyond the cost of niche developers, finding them can also be challenging too. Possessing an unusual skillset, sourcing developers from the local area can often be very difficult. Many critical development skills are so uncommon in the market, finding them locally is next to impossible, particularly in areas where local demand is extremely high, like tech hubs.
With not enough supply to meet demand, companies are being forced to look beyond their locality and think outside the box - offering remote working opportunities and even relocation packages for the right talent.
Why It’s Important to Get Technical Hires Right
Playing a critical role in business success, technical hires can be the difference between success and failure. As such, getting hiring decisions right is critical - and expensive if mistakes are made.
To reduce the risk of making a bad decision, the hiring process is often long and resource intensive. Designed to test every facet of a developer’s capabilities, knowledge and soft skills, recruitment is typically thorough to help avoid hiring mistakes that can have disastrous consequences. Hiring the wrong person who either doesn’t have the skills or experience can undermine an entire technical project, which intern can significantly impact the business. If timelines are disrupted because the developer can’t do the job to the level necessary, then delays are incurred and these then create problems throughout delivery.
With so much riding on them, a careful and detailed hiring process is critical to sourcing high quality software developers.
Where to Find and Hire Great Developers
Finding great software developers is often easier said than done. With a lack of supply on a global scale and few directly available in the market, finding developers often requires a little ingenuity in recruitment.
Open source software development platforms
Many companies scour software development platforms like Stack Overflow, Github and CodeProject for the talent they need. By overseeing user activity, they can see who is answering user queries, monitor the quality of their responses and then reach out to enquire further. As location is often irrelevant for many companies, organisations will often contact individuals who showcase their worth in regards to employment opportunities.
Freelance platforms like Fiverr, Freelancer.com and Toptal can help identify professionals operating in the market as independent contractors. These people can be tested with a small job beforehand that contributes to the business, if they perform to a high standard, then conversations can take place about hiring full time or building a retainer around their capacity.
This can be difficult as these contractors will often have multiple commitments of varying length and earn good money, but even if they can’t be convinced to join full time, they can help support project delivery in a freelance capacity, where needed. This is useful if the requirement is only temporary, but less economical over the long term.
These platforms allow clients to access, engage and source fully vetted software engineering agencies around the world, enabling companies to quickly fill skill gaps (through team augmentation) or execute on a specific scope of work.
Platforms like Andela, YouTeam and Digital Knights all help organisations looking for technical talent find fully vetted teams, allowing them to hit the ground running on development projects fast.
Hackathons and coding bootcamps
Hackathons and coding bootcamps bring technical experts together from across the globe to compete and build technical projects. Providing a platform for them to show their skills, companies can see firsthand what they know and how they apply that information, helping to evaluate their potential.
Many companies will often conduct bootcamps to identify the very best developers out there and cherry-pick the high performance individuals. Bootcamps regularly conducted include; Flatiron School, General Assembly, Makers Academy, Hackbright Academy, Hack Reactor, CodeUnion, Launch Academy.
Hiring Best Practices: The Characteristics of High Quality Developers
A new focus on 'soft' skills
Where once technical expertise would have been the primary focus, companies are now much more interested in soft skills that reflect the overall contribution of the developer. This includes capabilities like creative thinking, problem solving and adaptability - anything that can help the developer fulfil the responsibilities of the job.
Evaluating a potential developer for your business purely on their technical proficiency fails to consider their all-round skill profile and doesn’t necessarily help identify the best candidates for the role.
For example, the best developers don’t waste time memorising what can be found quickly in language specification or API documents. They instead focus on understanding the fundamentals of a new language and develop their own path to picking it up and applying the learnings quickly.
This flexibility and capability to put technical information into practice is overall much more valuable in a developer, rather than knowing everything off the top of their head. As such, it’s important such soft skills are considered when evaluating developer value and potential.
Soft skills to consider when hiring developers include:
- Ability to innovate and think creatively
- Problem solving and fast adaptability to changing environments
- Working as a team player
- Can take and offers constructive criticism and feedback
- Passionate about the technology
- A keen interest to learn more
These soft skills are all important elements to evaluate when hiring developer talent as they play a massive role in the value the developer can deliver. Unfortunately in the past, many companies failed to measure these characteristics and this led to many of the best developers being overlooked when it comes to hiring decisions.
While different types of developers will require varying skills, there are a few key characteristics all technical professionals must possess to effectively deliver high quality output and contribute. This includes a mixture of both hard and soft skills for the very best developers.
Strong communication skills
Great communication skills often go hand in hand with high quality development skills. With these capabilities, developers can quickly take on a project and align to its expectations and requirements, while also outlining challenges and making recommendations for solutions.
The very best developers get a grasp of problems quickly and work to fix and communicate the best way to overcome them. They know what questions to ask and when, while also maintaining a strong grasp on the objectives of their output and the context of their responsibilities.
The best developers also often speak multiple languages and are comfortable working with english documentation as standard. This is particularly important if a development project is operating across multiple countries with potential language barriers.
Ability to learn fast
Self-learning is a key skill for all developers - and is often inherent due to the nature of their role. They’re always learning new skills, rules and tricks around their area of focus and so adapting on the fly is often natural for them.
This flexibility is key and an essential skill for developers. In many projects, questions will arise that require research, adaptability and learning, and it’s in these circumstances prospects must be prepared to learn fast on the job.
Extensive technical experience
High quality developers typically come with a wide range of experience using different technologies and have a good understanding of how they work, and when they should be used.
Finding developers who have worked in similar projects to your own using the same technologies is important, if possible, as it allows you to tap into their previous learnings and optimise project development.
The very best developers will tap into their diverse industry experience and apply their technical skills to deliver world class output and overcome challenges quickly. This is particularly important when it comes to hitting deadlines, without compromising on quality.
Developers need to care about their work and this needs to be reflected in their attitude when delivering projects. They need to be prepared to work hard every day and meet deadlines, without sacrificing quality.
A positive attitude in development goes beyond merely caring and is reflected in how the developer works with others, solves problems and takes feedback.
Of course a positive attitude isn’t only the responsibility of the developer, to maintain their satisfaction, companies need to give their developers interesting projects to work on that keep them highly engaged. This mutual relationship helps the company to get the best out of their development workforce and ensures they’re committed to doing the very best job every time.
Great at time and task management
Time management and organisation are both key skills for technical developers. Tasked with managing projects and delivering to strict deadlines, developers need to have a strong work ethic, be able to effectively estimate how long tasks will take to complete and manage key stakeholders to take full advantage of the skills and expertise involved with the project.
A good team player
Working collectively is a key skill for any developer, they not only need to be able to work cohesively as a team, but also help other developers improve.
The best developers educate those around them, upskilling fellow professionals to enhance the capabilities of the team. This may involve teaching new skills, sharing insights from past experiences or highlighting areas where individuals can improve, and how.
Develops with the user in mind
Technical developers need to be user-focused as they build projects. If decisions are made that don’t reflect value for the end user, then it’s important they have the knowledge and willingness to put a case together to explain why a particular feature or capability is unnecessary.
This can help optimise the efficiency of a project and ensure the final output delivers the very best experience possible.
Hiring Best Practices: How to Test Skilled Developers
When hiring high quality technical developers, it’s essential they are properly tested for the skills, knowledge and experience you’re looking for. This should combine a mixture of theoretical, practical and character tests that effectively evaluate each candidate’s skillset.
Verify your candidate’s knowledge of languages, frameworks, and libraries
It’s essential that any claims of technical capability, knowledge and skill set are tested. This typically requires a multifaceted approach.
Review previous work examples
While the candidate will likely have a carefully selected portfolio of work, asking for evidence of work for particularly niche jobs will offer a good basis for evaluation, beyond just their best work.
Talk to people who have worked with the developer before to get an indication of their technical and soft skills. This will provide some much needed perspective and help build the picture around the value they can deliver.
Conduct programming challenges
Setting developers algorithmic-based problems in a time-limited setting will help evaluate their level of knowledge and provide a good understanding of their problem solving capabilities.
Use work samples to predict how well your candidates will perform if hired for the position
Your candidates will have a strong work portfolio and this will provide a good indication of what they can achieve. A developer’s work samples will showcase what they can do, the standards of their work and represent their approach to development. These insights will help comparably evaluate candidates and offer the opportunity to effectively scrutinise a developer’s strengths and weaknesses.
Work samples also help you get a better appreciation for what they’ve done in the past and provide good material to query further in interviews and future discussions.
Evaluate your candidates with multiple choice, database, code review, programming tasks, code gap, and essay questions
Testing candidates across a wide variety of technical challenges is the best way of evaluating their capabilities, strengths and weaknesses. This is critical when identifying the best candidates for the job, particularly if it’s focused on a niche subject matter or application.
Customising interview tests to match exactly what you need is critical to ensuring the candidate can fulfil the key responsibilities of the job in question.
Verify your candidates’ tech, communication, and collaboration skills by seeing them code in real time
Beyond technical skills, it’s important candidates can effectively communicate and work in a team. The best way to see these skills in action is to see them code in real time while evaluating their approach to writing code and how they’d go about solving problems.
Why the Demand For Niche Developers Will Continue To Grow Into the Future
The global need for skilled developers is set to rapidly increase in the near future. As businesses become more reliant on technical capabilities to deliver value to their customers, they will seek out the best technical professionals to help them optimise their offering.
Businesses that are able to effectively hire the high quality developers they need will be able to take full advantage of the programming languages they’re using and maximise their organisation’s capabilities, success and growth.
Where once companies needed only minor technical capabilities in house, many are now scaling their teams to reflect growing requirements and this is making the market for hiring developers that much more competitive.
When it comes to hiring niche developers, some languages are more popular than others, at this moment in time, there are a few stand out areas where demand is extremely high.
Go, Scala, React.JS, Ruby, Flutter, Java and Typescript are all growing rapidly in use and this is creating a talent supply issue, the demand is too high for the number of professionals in the market, and so more professionals in these fields are required.
Beyond programming languages, certain types of engineers are growing in demand too:
- AR/VR engineers
- Gaming engineers
- Computer vision engineers
The above are just a sample of the types of niche technical roles that are growing fast as the development sector changes and evolves.
Generalist developers are specialising
In the past, generalist developers - skilled in multiple languages - were able to deliver high quality output across a range of different technical areas. However, as development languages have grown more complex, these generalists are now being forced to choose a path to pursue in order to keep up.
It’s much more challenging to stay on the cutting edge of 3 or 4 languages, and so to take full advantage of their knowledge, they’re focusing on a single area of software engineering, for example, computer vision engineering or security engineering, or they’re choosing to pursue a single development language.
This is reducing the pool of developers available in the market even further and making technical recruitment even more challenging.
Competitive advantages will rely on technical capabilities
Moving into the future, companies aiming to build advantages over their competition will need the skills to optimise the development languages they’re using. With an increasing reliance on technical capabilities to deliver maximum value to customers, businesses will be aiming to build a reliable high quality technical development capability.
This increased importance in overall business success across almost every sector will radically increase the demand for developers. Businesses that in the past required few technical resources will start scaling their requirements and this will further add to the market demand.
This will contribute to the growing supply challenges around technical talent, making it harder for businesses to find the key developers they need to maximise business growth and success.
Key Lesson to Remember When Hiring Developers
In order to hire top quality developers it's essential to follow best practices to find the very best candidates for the job. This can only be achieved if the hiring process effectively outlines the developer’s capability while evaluating their ability to do the job.
Test, test, test
It should go without saying, but testing developers across a range of capabilities and skills is key to finding the best individuals for your business. You need to know any technical hire has the knowledge, understanding and experience necessary to fulfil your requirements, and testing plays a major role in building this understanding.
Testing should include a mixture of practical tests, designed to offer a platform for them to showcase their capabilities and theory tests to ensure they know what they’re talking about and can apply their knowledge effectively.
Don’t underestimate the value of soft skills
While there’s no doubt good developers need to have the hard technical skills to do the job, it’s important these don’t take precedent over softer skills. Communication, problem solving and teamwork all play a critical part in outlining the value a developer can deliver.
These fundamental capabilities are just as essential as familiarity with key knowledge, tools and capabilities, and in many cases play an even larger role in a developer’s ability to fulfil the responsibilities of the job.
Consider remote developer solutions
Sometimes hiring internally just isn’t possible. There may not be the right talent in the market for your budget, or your needs may not be clear enough to justify going all out for high cost technical hire over the long term. Whatever the case, in some situations it makes sense to instead look to external hiring options.
Using software hiring agency platforms or freelance platforms you can find the talent you need, without committing to long term contracts.
This can help companies who are looking to tap into technical skills, without committing to a permanent hire. In addition, this can also help companies who can’t find what they need in the traditional job market or who don’t have the time to properly conduct full due diligence on a new hire.
Look for developers across a wide range of channels
Many companies only use traditional channels when hiring developers. This leaves them fighting with the majority for a small pool of experts, many of which will be in high demand and so expect high salaries.
If you’re prepared to look beyond obvious channels like Linkedin, you’ll quickly see how many more developers are in the market, and this will make your candidate search that much easier.
This is particularly important when you’re looking to hire a niche developer. The more channels you can monitor, the better your chance of finding the very best candidate for the job.
Don’t let a lack of experience put you off
Ideally, the developers you hire will be experienced in the role you need them to do, however, this is not completely necessary. As the developer in question will be experiencing new challenges regularly anyway, not having direct comparative experience should not prevent the individual from getting an opportunity.
Providing they have the knowledge and capability to learn fast, it may make sense to bring in a developer with experience elsewhere, to quickly learn the role - especially if you're an earlier stage business where budget is a consideration.
This provides the added benefit of allowing you to sculpt their learning and ensure they conduct their responsibilities in the exact way you want them to.
Attracting the best developers in the market to come and work for your business can often be a challenge for a multitude of reasons as explained above.
This challenge isn't going away any time soon, if anything demand for tech talent is only going to get more competitive in the coming years.
That's why it's important to keep an open mind when it comes to the different paths you use to fill technical skills gaps in your business and constantly challenge the norm.
From hiring internally, to working with freelancers or a trusted remote development partner, making the right decision will purely come down to what's the most efficient and cost-effective way to bring in the right standard of tech talent that meets your needs.
If you're interested in exploring how working with a remote development partner can solve your tech hiring challenges, schedule a call with our team today