Most experienced developers are familiar with Python

The 12 Types of Developers Every Recruiter Should Know

It is the same with developers as with other employees: everyone has different skills and abilities. For example, a developer who specializes in visual front-end production has a completely different way of working than a developer who focuses on the logic behind the software. The tools used also play an important role.

However, since you are not a developer (in most cases), it can be difficult for you to distinguish the different types of developers and find the one who best suits your needs.
This year, Stack Overflow conducted a comprehensive survey of over 90,000 people that looked at the technology industry, and specifically developer focus. Using this data, we've compiled a list of the 12 most common types of developers. This will help you to answer the most important questions in the future: In which area does the developer work, how does he work and what exactly does he do?

Here are the 12 most common types of developers:

Backend developers:

Backend developers, also known as server-side developers, focus on the logic of software systems - what makes a system work and how to improve its performance. They are generally concerned with how machines function in themselves (i.e. “computer theory”) and with the design of systems that process and store data, often performing complex algorithmic calculations. They are the most common type of developer, closely followed by full-stack developers.

Backend developers usually have a command of general, widely used programming languages ​​such as Java, C ++ and, in particular, Python - one of the most widely used and popular programming languages. You may also be familiar with more up-to-date languages. This can have an impact on the average salary grade of a backend developer: Being fluent in an innovative programming language like Go or Rust tends to lead to a higher salary. In fact, backend developers earn more on average than frontend developers, for example - even with the same level of experience.

Frontend developers:

Front-end developers, also known as client-side developers, focus on creating, maintaining, and improving the user interfaces that most of us interact with when using a product or technology. They are generally busy making user interface design more intuitive and fixing cross-browser issues.

Front-end developers are familiar with mobile programming languages ​​such as JavaScript and CSS. They are also very familiar with front-end frameworks such as React, Angular or jQuery - the latter is by far the most popular framework.

Frontend developers are the third most common type of developer: In our survey, they made up 32.5% of the respondents from Germany. They are also among the least experienced, with a global average background of less than eight years of work.

Full stack web developers:

Full stack developers combine the skills and approaches of backend and frontend developers. You will therefore work on the underlying logic of a program as well as on the user interface. Because of this, they are able to better synchronize the backend and frontend system designs and reduce the risk of friction or contradiction between them. However, because their area of ​​focus is larger, they are sometimes more "all-rounders" than hyper-specialized - neither on the front nor on the back end. Still, full-stack developers tend to get a higher salary per year of experience than front-end or back-end developers. In addition, some full-stack developers have mastered and used Clojure, which is by far the most lucrative programming language currently available.

Full stack developers are the most common type of developer: in our survey, they made up around 50% of respondents.

Desktop developers:

Desktop developers work on software that is designed to run on individual laptops or desktop computers. This software is designed to work within an operating system such as Windows, Apple OSX or Linux. Some desktop developers work with one operating system only, while others work with multiple operating systems. They have some of the same skills as backend developers, but are usually also familiar with using SDK and graphics libraries such as XAML, Cocoa, or .NET.

About ten to fifteen years ago, desktop developers were even more common than they are today. They came fourth in our survey. Desktop developers are generally very experienced, with an average of nearly ten years of professional experience.

Mobile developers:

While desktop developers write code that is used for laptops and desktops, mobile developers develop for the operating systems of mobile devices such as iPhones or Androids. Some mobile developers are basically specialized front-end developers who use mobile technologies, platforms, and software languages ​​instead of web-based programming languages. Other mobile developers, however, use stand-alone applications and systems such as desktop developers. You will work primarily in the languages ​​specific to iOS devices (Objective C and Swift) and Android devices (Java / Kotlin), but you can also work in C, C ++ and related technologies, as well as other widely used programming languages.

In our survey, we found that mobile developers are among the worst paid developers with an average of EUR 55,000 per year (globally and in Germany alike). At the same time, they are the ones with the least experience, which is another factor behind the lower salary. In general, however, it can be stated that the salaries of mobile developers tend to be lower than those of other developers with a similar average level of experience, such as that of QA developers.

Graphics programmers:

Graphics programmers work primarily in video game production and special effects production. They create their own designs or implement others' designs by working on rendering, shading, and other visual effects that create sophisticated imagery in games, movies, TV shows, and other visual media. Their skills tend to be extremely specific, and they often have extensive backgrounds in math and algorithms, as well as artistic skills and talents.

Graphics programmers are generally fluent in programming languages ​​such as Java, JavaScript, and C ++. Those who know specialized languages ​​like Swift and Objective-C (which are used to develop games for iOS) tend to be in greater demand. By and large, however, graphics programmers tend to be on the lower end of the salary spectrum. They generally make a little more than mobile developers, on average

€ 55,000 per year, but usually have a little more experience.

Database engineer:

Database engineers (and administrators) create and manage database systems and the systems and applications used to retrieve data from database storage. In some positions, database engineers also manage data pipelines (i.e., they convert production data into actionable analytical data) and also focus on optimizing performance. Their skills generally include SQL-based implementations (such as MySQL and PostgreSQL) and can also include more specific and cutting-edge NoSQL databases (such as MongoDB and Cassandra). Database engineers are also generally fluent in programming languages, especially Python.

With a global average of 9.5 years, database engineers are among the most experienced developers. According to our survey, their salaries tend to lag behind certain types of developers with less average experience, such as full-stack developers and data scientists. They compare well with desktop developers, who on average earn a little more, but are also a little more experienced.

Data scientists:

Data scientists use programming tools to convert large amounts of data into actionable information and to draw conclusions and insights from it. As a rule, you do not have a background in computer science, but you are well versed in using computer / machine learning languages ​​such as R, Python and tools such as Spark to carry out statistical analyzes and make predictions. They usually have a thorough knowledge of statistics and are able to communicate effectively with management, sales, marketing, and other departments.

Data scientists are among the most highly paid developers based on their average experience. You rank fourth among our respondents among the world's highest paid developers. According to our survey, data scientists are not all that experienced, with a global average of 7.8 years. However, their average salaries are higher than those of more experienced developers such as database administrators and desktop developers.

DevOps and Site Reliability Engineers (SRE):

DevOps and Site Reliability engineers facilitate the application production process. They specifically focus on writing code that ensures that an application goes safely into production and remains functional and available to both developers and users. This involves many tasks and disciplines, including creating processes, provisioning resources, and ensuring that an application's infrastructure is resilient to potential viruses, database corruption, bugs, and other potential problems. They are usually very familiar with cloud providers like AWS and Azure, tools for continuous integration like Spinnaker, and Git implementations and log management systems like Splunk. While DevOps developers are generally fluent in Python, they tend to use cutting-edge programming languages ​​as often, if not more, than Ruby and Go.

DevOps / SRE developers are among the highest paid developers in the industry globally. In fact, our survey found them to be the number one highest paid developer with an average salary of $ 95,000 globally. They are also usually very experienced. Another reason for their high salaries is their choice of programming languages: Ruby and Go are two of the most valuable languages ​​in terms of salary.

Quality assurance specialists (Quality Assurance Developer):

Quality assurance specialists (also called QA) ensure that an application performs as expected. In particular, QA engineers focus on ensuring that code written by other developers does not damage the application in question. Traditionally, QA engineers used software to manually test codes to see if something goes wrong. While many QA engineers still see this as part of the process, they can also program automated tests that simulate usage and check for errors. These can be unit tests or integration tests.

As they work on code written by other developers, QA engineers are proficient in a variety of programming languages. This includes the most popular languages ​​for test automation (Java and Python) as well as other languages ​​such as Ruby. On average, they are among the least experienced developers. While their salary is on the lower end of the spectrum, their salary is, on average, higher than that of other more experienced developers. According to our survey, they are roughly on par with front-end developers in terms of years of experience and salary level.

Developer for Client Relationship Management (CRM):

Client Relationship Management developers move on the line between computing and sales. You will focus on creating, customizing, and implementing business software (software that stores customer and business information). Business software generally falls into one of three categories: customer relationship management systems (such as Salesforce), corporate resource planning systems (such as SAP), and document filing systems (such as Sharepoint). Client Relationship Management developers can play a critical role in improving sales and customer satisfaction by writing code to improve sales and product processes.

Embedded developers:

Embedded developers differ from all the other types of developers mentioned on this list in that they work with hardware rather than software. This means that instead of writing codes for systems, programs and applications that work inside a machine, they work on the actual hardware system itself. Embedded developers program the behavior of microcontroller chips, embedded firmware and other devices, sometimes even 'bare metal' '(Systems without an operating system) between hardware and code. They generally work in C / C ++, have a lot of engineering knowledge, and are in increasing demand as more of the things we use in everyday life (like devices and vehicles) require microprocessors and other microchips with embedded logic. Embedded developers are usually very experienced, with a global average of almost ten years.