Software developer and software engineer working together on a project

If you’ve worked in the tech industry for any length of time, you’re well aware that specializing in certain skills and tools can make you a more desirable job candidate—and a higher-paid one, too. For those in software development, which specializations pay the most?

According to levels.fyi, which crowdsources compensation data from tech professionals, the answer is a pretty simple one: “hot” skill-sets such as machine learning, virtual reality, and augmented reality will pay software developers much more than, say, a focus on DevOps or production. Check out the chart:

There are some crucial things to keep in mind. First: Some software developer specializations might not pay as much as others, but they’re still vital to organizations everywhere: the need for DevOps, web development, or any of the other “lower-paying” disciplines on this list isn’t fading away anytime soon.

Second, disciplines such as machine learning and virtual reality can pay so much because those candidates who’ve mastered the underlying principles and tools are a relatively small group. But more people will begin to learn those cutting-edge technologies, motivated by the prospect of sky-high salaries and great benefits. And when a talent pool grows, it pressures salaries downward. In other words, it can really pay off to focus on cutting-edge technologies, but the compensation might not always stay insane—for example, how long will Meta keep paying AR/VR specialists more than a million dollars per year?

Third, all software engineers and developers should master a core set of skills before attempting to specialize; employers will want you to know the fundamentals of development. According to Lightcast, which analyzes millions of job postings from across the country, the “defining skills” of software development (which are the day-to-day software engineer skills they need to fulfill an organization’s tactical and strategic goals), include:

Whatever their skill set, also remember that software engineers and developers can earn solid salaries. Dice’s latest Tech Salary Report suggests a principal software engineer can earn $153,288, while a cloud engineer can pull down $145,416. Back-end software engineers earn slightly lower ($129,150), just ahead of data engineers ($122,811) and systems engineers ($120,800). Those numbers climb still higher with experience and certain skills.