Syndicode
Contact Us
SYNDICODE Marketing
November 2, 2017

Types of developers

How many types of developers do you know? And, if you are a developer, to which type do you refer yourself? In the real world, the boundaries between different types of developers are blurred. The more professional you become, the more types you will fit. So let’s see, how many types of developers are available in software development industry.

Before we start, we’d like to say thanks to Lorenzo Pasqualis whose article inspired us to create this material.

To be honest, most of us recognize only three types of software developers: frontend, backend and fullstack. That is obvious, but this is just a half of the truth. Nowadays different developers with the same tech stacks unlikely can apply their skills and knowledge to the different area. It’s like asking your mobile developer to work on creating a game. He could know the tools, but he is not a game developer. And that makes a huge differentiation in developer’s types.

We’ll start with the main types:

Frontend

Yesterday we wrote the biggest article with cheatsheet for frontenders. So who are they? This is a type of developers who specialize in visual user interfaces, aesthetics, and layouts. Their code runs on a web browser, on the computer of the site user. They work on creating web apps and websites. Hardware is not what frontend specialists usually think about.

Their work requires an understanding of human-machine interaction and design principles more than computer science theory.

Frontend development skills:

  • design of user interface (UI)
  • design of user experience (UX)
  • CSS
  • JavaScript
  • HTML
  • UI frameworks.

Frontend devs need to be familiar with frameworks like Bootstrap, Foundation, Backbone, AngularJS, and EmberJS, which ensure great-looking content no matter the device, and libraries like jQuery and LESS, which package code into a more useful, time-saving form. A lot of front-end developer job listings also call for experience with Ajax, a widely used technique for using Javascript that lets pages dynamically load by downloading server data in the background.

Backend

The second most popular type of developers. The backend developer specializes in the design, implementation, functional core logic, performance, and scalability of a piece of software or system running on machines that are remote from the end-user. They integrate a vast array of services such as databases, caching, logging, email systems etc.

What makes the front end of a website possible? Where is all that data stored? These are the questions for the backend development. The backend of a website consists of a server, an application, and a database. A backend developer builds and maintains the technology that powers those components which, together, enable the user-facing side of the website to even exist in the first place.

Backend development skills:

  • Java
  • C, C++
  • Ruby
  • Python
  • Scala
  • Go, etc.

They also use tools like MySQL, Oracle, and SQL Server to find, save, or change data and serve it back to the user in front-end code. Job openings for backend developers often also call for experience with PHP frameworks like Zend, Symfony, and CakePHP; experience with version control software like SVN, CVS, or Git; and experience with Linux as a development and deployment system.

Fullstack

Call this developer a wizard, but he (or she) does both frontend and backend work. The fullstack developer has the skills required to create a fully functional web application. It is considered that working on both the server side and client side professionally opens more opportunities. They’re jacks-of-all-trades.

The complexity of full stack development can be illustrated with this picture (of course, there more technologies):

Image via TechCrunch

The fullstack developer should be able:

  • to set up and configuring Linux servers
  • to write server-side APIs
  • to dive into the client-side JavaScript powering an application
  • to turn a “design eye” to the CSS

Mobile developer

This is a developer who writes code for applications that run natively on consumer mobile devices such as smartphones and tablets. This type appeared after the boom of mobile devices in the early 2000s and the explosion of the smartphone market. Before then mobile development was considered a subset of embedded development (we will write about embedded developers in this article too).

A mobile developer understands the intricacies of mobile operating systems such as iOS and Android, and the development environment and frameworks used to write software on those operating systems.

Mobile developer skills:

  • Java
  • Swift
  • Objective-C
  • C, C++ and Java
  • Application Programming Interfaces (API) like Apple iOS, Android, Windows Mobile, and Symbian
  • Web development languages like HTML 5 and CSS
  • Cross-platform mobile suites like Antenna and AMP ( Accounting-Management-Promotion)

Game developer

Every game-addicted child wants to become a game developer in future. But this occupation as much romantic and fun as complicated and demanding.

Game developer specializes in writing games and can fall into one of the other categories of developers, but they often have specific knowledge and skills in designing and implementing engaging and interactive gaming experiences.

Skills for game developers:

  • DirectX, OpenGL, Unity 3D, WebGL frameworks
  • languages such as C, C++, and Java
  • JavaScript and HTML5
  • Swift and Java for mobile devices.

Data Scientist

This type of developer writes software programs to analyze data sets. They are often in charge of statistical analysis, machine learning, data visualization, and predictive modeling. Quite romantic, right? But the list of skills a data scientist should have covers a lot of science-related things:

  • Statistical programming languages, like R or Python, and a database querying languages like SQL
  • Understanding the statistics and different techniques that are (or aren’t) a valid approach
  • Familiarity with machine learning methods
  • Knowing Multivariable Calculus and Linear Algebra principles
  • Knowing how to deal with imperfections in data (including missing values, inconsistent string formatting etc.)
  • Visualizing and communicating data is incredibly important
  • Having a strong software engineering background
  • Ability to solve high-level problems

DevOps developer

This is a type of developer familiar with technologies to build, deploy and integrate the system and administer back-end software and distributed systems.

To explain the way:

  1. A developer (programmer) creates applications
  2. Ops deploys, manages, monitors applications
  3. DevOps creates applications AND deploys/manages/monitors them.

DevOps was made possible because of the cloud and the tools/platforms to make deployment and management easy. Skills needed by devops:

  • Kubernetes
  • Docker
  • Apache Mesos
  • the HashiCorp stack (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
  • Jenkins, etc.

Software Development Engineer in Test

This type of developer is responsible for writing software to validate the quality of software systems. They create automated tests, tools and systems to make sure that products and processes run as expected. Skills needed for engineers in test:

  • Python
  • Ruby
  • Selenium.

Embedded developer

The embedded developer works with hardware that isn’t commonly classified as computers. For example, microcontrollers, real-time systems, electronic interfaces, set-top boxes, consumer devices, IoT devices, hardware drivers, and serial data transmission fall into this category.

Embedded developers often work with languages such as:

  • C, C++
  • Assembly
  • Java or proprietary technologies, frameworks, and toolkits

With the embedded developer definition, we would like to finish the list of developer’ types. We named for you the main developer types which are fundamentally different. But you could also hear about:

web developer (the purpose of web development is obvious)

application developer (who is proficient in creating different types of apps)

security developer (who creates systems, methods, and procedures to test the security of a software system)

CRM developer (they hang out with SAP, Salesforce, Sharepoint, and Enterprise Resource Planning)

Big data developer (rarely met, this type of developers use systems for distributed storage and processing of vast amounts of data such as MapReduce, Hadoop, and Spark)

Graphics developers (they specialize in writing software for rendering, lighting, shadowing, shading, culling, and management of scenes)