How to assess for proficiency in the ten most common software development technologies

Analysis of over 400,000 job posts highlights the top software development technologies and how to assess for them

Jason Wodicka
Staff Software Engineer

Last week we covered the top ten in-demand skills for software engineers. This week we’re following it up with the ten most common software development technologies found in job descriptions. We’ll also cover a few tips for how hiring managers can assess proficiency with these and other technologies.

Ten most common software development technologies

#10 Kafka
Kafka saw the third-largest annual gain of any software development technology on our list, climbing 16 spots to earn a place in our top 10 list of technologies. It’s an open-source, stream-oriented data solution for managing communication between systems in real-time.

#9 Git
Git is the de-facto source control system these days. With sites like GitHub that have transformed source control from a boring necessity into a platform for global collaboration, it’s becoming even more of a fundamental software development tool.

#8 Spark
Spark, the most popular big data tool, is an open-source analytics engine for big data processing, with a wide ecosystem of other tools adjacent to and supporting it.

#7 Node
Node is an engine for running JavaScript on the server. The appeal of using the same language to power the front-end and back-end has a lot of full-stack teams choosing it.

#6 Docker
Docker is a containerization technology – a tool which lets developers package up systems with everything they need to run consistently in a variety of environments. Containers have played a huge role in the rise of service-oriented and serverless architectures, and their relevance is still growing – take a look at Kubernetes’ ascent for more on that!

#5 React
React is the framework that made many developers – me among them – realize front-end JavaScript could be elegant. In the nine years since Facebook first open-sourced it, it’s become one of the dominant front-end technologies, and the principles behind it have influenced nearly every major front-end technology developed lately.

#4 Azure
Azure, Microsoft’s cloud computing platform, saw one of the biggest gains annually, climbing 14 spots to enter our top ten. While it still hasn’t displaced AWS from the top position, it’s a strong indicator that the cloud is more accurately the clouds. Pointing to that same trend, Google Cloud is also gaining in popularity, and while it hasn’t joined AWS and Azure in the top ten, Google Cloud was the highest mover of any technology, jumping 27 spots to come in at #16 in our most mentioned technologies.

#3 Kubernetes
Kubernetes, like Docker, is containerization technology – where Docker is used to build containers, Kubernetes provides tools to run those containers in fleets, coordinating them into applications. It climbed 7 spots year over year to enter the top three, in another clear sign that containers have earned their place as a mainstream solution for packaging, deploying, and developing code.

#2 Linux
Linux is the only operating system to appear anywhere near the top ten in our analysis. While consumer adoption and “the year of Linux on the desktop” may seem to always be one more year into the future, its dominance in the cloud and server environment remains strong.

#1 AWS
Amazon Web Services showed up at the top of our technologies list for the second year running, which probably won’t surprise anyone who’s been watching the tech market. While Azure and Google Cloud are rising in relevance, Amazon’s dominance in the cloud computing space is still evident in the skills we’re seeing in demand.

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:

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.

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 for 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.

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 what’s provided for you, and how to use it. Familiarity with an environment is a combination of knowing how to use the tools it provides to learn about it 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 AWS’s names for some key components – but it’s more important to assess whether they understand how to use those underlying components, whether it’s AWS, Azure, or the Next Big Cloud that’s providing them.

So, there you have it: the top 10 software development technologies that tech companies look for in software engineering job candidates. While there are numerous other skills and technologies that you’ll run into, these are the foundational elements necessary for screening engineering candidates. Learn them, understand them, and watch your engineering team grow.