You have 1 article left to read this month before you need to register a free LeadDev.com account.
Looking to hire engineers with specific skills? Here’s how to assess proficiency across common tools, frameworks, and environments.
Software engineering candidates need to show proficiency across numerous skills and technologies during the hiring process. But what are the foundational technical elements necessary for screening candidates, and how can you accurately assess skills in these areas?
In this article, we’ll look at the ten core technologies that organizations are looking for in engineering candidates, based on our analysis of more than 40,000 job postings over the past two years. We’ll also cover a few tips for how hiring managers can assess proficiency with these and other technologies.
The ten core software development technologies
#1 Amazon Web Services (AWS)
#2 Linux
#3 Kubernetes
#4 Azure
#5 React
#6 Docker
#7 Node
#8 Spark
#9 Git
#10 Kafka
Assessing tech proficiencies
Assessing these sorts of skills varies, depending on what kind of skill you’re looking for. We’ve grouped these skills into a few categories based on their similarities:
1. Tools (Git, Spark, Kafka)
Some of these technologies are tools that a developer will need to be proficient in to hit the ground running. A quick tech recruiter assessment can start with familiarity with the fundamental vocabulary and concepts of a tool – anyone who’s worked with git at a professional level should have a working understanding of things like branches, remotes, and commits, for example.
To go deeper, ask candidates how to use the tool to solve a problem that it’s a good fit for. You’re not assessing them on whether they come up with an ideal solution on the spot, but whether they make good use of the system’s unique traits and use the capabilities it brings.
2. Frameworks (Node, React)
Frameworks like Node and React offer a scaffolding that makes certain types of problems easier to solve. An initial assessment using a structured rubric can check whether the candidate understands what sort of problems a particular framework is suitable for, and may include some familiarity-checking with any particularly noteworthy core concepts, like React’s unidirectional data flow.
It’s important to assess understanding of concepts rather than terms – a developer doesn’t need to have memorized the exact wording, but they need to understand the core meaning. This is why developer assessments are best performed by other developers.
3. Environments (AWS, Azure, Linux, Docker, Kubernetes)
Environments are the pre-existing systems on which software is built. If software is a building, the environment is the place where it’s built – which includes a lot of the foundations which are provided for you, and how to use them. Familiarity with an environment is a combination of knowing how to use the tools it provides, and knowing when to let it do things for you versus doing them yourself.
Assessing familiarity with a software development environment can often turn into a question of environment-specific trivia, and we find it’s more effective to assess familiarity with a category of environments. It’s easy to ask if someone knows the names AWS uses for some key components, but it’s more important to assess whether they understand how to use those underlying components. This applies for AWS, Azure, or the Next Big Cloud that’s providing them.
Reflections
There you have it: the ten core technologies that companies are looking for in engineering candidates, and how to effectively assess proficiency.
While there are many other technologies that you’ll run into, these are the foundational elements for developer candidates. Learn them, understand them, and watch your engineering team grow.