You are on page 1of 17

 Skip to primary navigation

 Skip to main content


 Skip to primary sidebar
 Skip to footer

CODERHOOD

The Human Dimension of Software Engineering

Search this website

MENU
You are here: Home / career / 19 Types of Developers Explained

19 Types of Developers Explained


AUGUST 16, 2017 BY LORENZO PASQUALIS9 COMMENTS
The software development landscape changes constantly. New areas of
specialization, technologies, and methodologies pop into existence every few months,
forged by the relentless innovation of the software industry. With it, terms to
describe specialized types of developers become part of the unofficial industry lingo and
show up in job ads and corporate titles.

Before the existence of the internet, many of these specializations didn’t exist. The
world wide web has shifted most aspects of our lives, including revolutionizing the
career paths of software engineers.

There isn’t an official industry glossary of terms. Understanding the skills that each
type of developer needs to have is confusing to newcomers, and can be intimidating to
non-technical people.

In this post, I define 19 of the most common types of developers with a short
description and list of technologies they use and skills they must have. The definitions of
those terms reflect my professional understanding, but it may vary depending on the
company, the region, or the industry.

For a description of software engineering job titles, refer to “Software Engineering


Job Titles Explained.” Also, for a description of engineering leadership roles, refer to “8
Engineering Leadership Roles Explained.”

1 – Front-end Developer (AKA Client-Side


Developer)
This is a developer who specializes in the programming of visual user interfaces,
including its aesthetics and layouts. A front-end developer code runs on a web browser,
on the computer of the user of the site.

It is very high-level work, normally far removed from the hardware. It requires an
understanding of human-machine interaction and design principles more than computer
science theory. Much of a front-end developer’s life is spent dealing with cross-browser
compatibility issues and tweaking details of the visual presentation of a UI.

Front-end development skills include the design of user interface (UI) and user
experience (UX), CSS, JavaScript, HTML, and a growing collection of UI frameworks.

2 – Backend Developer (AKA Server-Side


Developer)
This is a developer who 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.

Back-end systems can grow to be very complex, but their complexity is often not
visible to the users. For example, consider Google search engine. The front-end part is
a very simple UI with a title, a text box, and two or three buttons. The backend is an
enormously complex system, able to crawl the web, index it, and find what you are
looking for with a growing array of sophisticated mechanisms.

A back-end developer works with programming languages such as Java, C, C++,


Ruby, Perl, Python, Scala, Go, etc. Back-end developers often need to integrate with a
vast array of services such as databases, data storage systems, caching systems,
logging systems, email systems, etc.

3 – Full-stack Developer
This is a developer that does both front-end and back-end work. He or she has the
skills required to create a fully functional web application.

4 – Middle-Tier Developer
This is a developer who writes non-UI code that runs in a browser and often talking to
non-core code running on a server. In general, middle tier is the “plumbing” of a system.

The term middle-tier developer is used to describe someone who is not specialized in
the front-end or the back-end but can do a bit of both, without being a full stack
developer. Only rarely engineers have this as a title, as it is more of a description of a
skill set than a career path.

5 – Web Developer
Web developers are software engineers who specialize in creating websites. They
are either front-end developers, back-end developers, middle-tier developers or full-
stack developers.

Web-Development became a very common way to enter the software engineering


world in the late ‘90s and early 2000s. It has a low entry-point, requiring as little as basic
HTML and CSS knowledge. With only a few months of experience, an entry-level web
developer can start producing code that ships to production systems. It is a particularly
attractive option for people who have no CS fundamentals and want to join the
programming world.
6 – Desktop Developer
This is a developer who works on software applications that run natively on desktop
operating systems (such as Mac OS, Windows, and Linux).

Back in the ’80s, this was one of the most common types of engineers, popularized
by inexpensive development environments such as Turbo Pascal, Turbo C, Visual
Basic, Quick C, Visual Studio, and Delphi.

Desktop developers often use GUI Toolkits such as Cocoa, XAML, WinForms, Gtk,
etc.

7 – Mobile Developer
This is a developer who writes code for applications that run natively on consumer
mobile devices such as smartphones and tablets. Mobile development was almost
unheard of before the early 2000s and the explosion of the smartphone market. Before
then mobile development was considered a subset of embedded development.

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. That includes Java, Swift, and Objective-C.

8 – Graphics Developer
This is a type of developer specialized in writing software for rendering, lighting,
shadowing, shading, culling, and management of scenes. These developers are often
responsible for integrating technologies in the gaming and video production industry.

Graphic development used to be a form of low-level development, requiring


advanced math and computer science training. It is becoming more accessible with the
introduction of commercial and open source frameworks and systems. For example,
very few people today need to be able to write a shader from scratch.

Frameworks include DirectX, OpenGL, Unity 3D, WebGL. For more advanced
graphic developers, low-level development requires C, C++, and Assembly.

9 – Game Developer
This is a generic term to identify a developer specialized in writing games. Game
developers 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.

Frameworks used by game developers include DirectX, OpenGL, Unity 3D, WebGL,
and languages such as C, C++, and Java. Adobe Flash used to be the standard gaming
platform for web games. Since Flash is being abandoned, JavaScript and HTML5
became the new standard. On mobile devices, Swift and Java are now the technologies
of choice for iOS and Android games.

10 – 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.

Languages used by data scientists often include SQL, R, and Python.

11 – Big Data Developer


This type of developer writes software programs to store and retrieve vast amounts
of data in systems such as data warehouses, ETL (Extract Transform Load) systems,
relational databases, data lakes management systems, etc.

A big data developer is often familiar with frameworks and systems for distributed
storage and processing of vast amounts of data such as MapReduce, Hadoop, and
Spark. Languages used by Big Data Developers include SQL, Java, Python, and R.

12 – DevOps Developer
This is a type of developer familiar with technologies required for the development of
systems to build, deploy, integrate and administer back-end software and distributed
systems.

Technologies used by DevOps Engineers include Kubernetes, Docker, Apache


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

13 – CRM Developer
This type of developer specializes in the field of systems that collect user and
consumer data. These developers are tasked with improving customer satisfaction and
sales by improving the tooling used by customer support representatives, account
managers, and sale representatives.

Technologies used by these developers include SAP, Salesforce, Sharepoint, and


ERP (Enterprise Resource Planning).

14 – Software Development Engineer in Test


(SDET)
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.

Technologies used by SDETs include Python, Ruby, and Selenium.

15 – Embedded Developer
These developers work 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.

16 – High-Level Developer
This is a general term for a developer who writes code that is very far from the
hardware, in high-level scripting languages such as PHP, Perl, Python, and Ruby. Web
developers are often high-level developers, but not always.

17 – Low-Level Developer
This is a general term for a developer who writes code that is very close to the
hardware, in low-level languages such as assembly and C. Embedded developers are
often low-level developers, but not always.

18 – WordPress Developer
I include WordPress developers in this list because they are a hefty group of
specialized web developers. They create and customize themes and plugins for
WordPress and administer WordPress sites.

This kind of developer uses the WordPress system, PHP, JavaScript, and HTML.

19 – Security Developer
This type of developer specializes in creating systems, methods, and procedures to
test the security of a software system and exploit and fix security flaws. This type of
developer often work as “white-hat” ethical hacker and attempts to penetrate systems to
discover vulnerabilities.

Security developers most often write tools in scripting languages such as Python and
Ruby and understand in details the many patterns used to attack software systems.
More advanced security developers need to read and understand operating systems
source code written in C and C++. They might also reverse engineer libraries and
commercial software systems to find and exploit vulnerabilities.

Conclusions
There are many paths software developers can take to enter and progress in their
careers. Regardless if you start with a formal computer science education, or stumble
into web development with personal projects, or try to make a million dollars creating an
iPhone game, the possibilities are endless.

Once you choose a path, you can change as your skills and knowledge improve.
Even if you choose to stick with one path for your entire career, you’ll never run out of
things to learn. Technology evolves so quickly that is far easier to be left behind than to
get bored.

Share this:




 4Save

 Email
 Share


 WhatsApp
 Print
 Pocket
 Telegram

Like this:

Loading...
Related

10 Top Reasons To Have a Career in Tech


January 8, 2018

7 Ranks of Coderhood: Coder, Programmer, Computer Scientist, Developer, Engineer, Architect


November 30, 2017
Never compromise on a high hiring bar
June 2, 2017

FILED UNDER: CAREERTAGGED
WITH: CAREER, HIRING, INTERVIEW, PEOPLE, RESUME, ROLES, TECHNOLOGY
Reader Interactions
COMMENTS

1. Newhippyera says

November 6, 2019 at 7:17 am

Nice Post

Reply

2. Chris Lance says

November 5, 2019 at 11:37 pm


thanks for this

Reply

3. Download Movie says

November 5, 2019 at 6:26 am

Thanks for this wonderful and amazing information, Kudos to your team

Reply

4. yusf ahmmed says

November 3, 2019 at 2:17 pm

nice website

Reply

5. Mark says
October 31, 2019 at 11:51 pm

Do you a udemy course on Java Script?

Reply

6. Malik says

October 31, 2019 at 11:48 pm

Can you do youtube video on this and send us link?

Reply

7. Yusuf Kabiru says

October 26, 2019 at 2:50 am

I really love you writing style..

Thanks.

Reply
8. techsteeds says

April 10, 2019 at 3:11 am

I want to big thanks for sharing wonderful list Nice work

Reply

9. EB says

June 5, 2018 at 9:58 am

Please make a nice infographics out of this!

Reply

LEAVE A REPLY
This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar
SUBSCRIBE VIA EMAIL
Enter your email address to subscribe to this blog and receive notifications of new posts
by email.
Email Address

SUBSCRIBE
JOIN US ON FACEBOOK
ARCHIVES
 November 2019
 February 2019
 January 2019
 December 2018
 April 2018
 March 2018
 February 2018
 January 2018
 December 2017
 November 2017
 October 2017
 September 2017
 August 2017
 July 2017
 June 2017
 May 2017
RECENT POSTS
 Doodle Tuesday: Flying Tree of Drops
 Doodle Tuesday: Roots, Fruits and Flowers
 Doodle Tuesday: Mushrooms
 Software Maintenance, Understanding the 4 Types
 What I Have Been Doing Lately
MOST POPULAR
TAGS

advice agile art balance behaviour blog bolbo   career code cultur
brain

e development process diversity doodle education fallacies finding talent gender


hiring infographic innovation interview involuntary bias job
bias 

market  leadership  learning logic meeting meetings  people processing-language 


products programming quotes resume roles scrum software
teams technology value wit women in tech work
design strategy 
environment
DISCLOSURES

We are a participant in the Amazon Services LLC Associates Program, an


affiliate advertising program designed to provide a means for us to earn fees
by linking to Amazon.com and affiliated sites. With that said, we will never
promote anything we don’t trust or haven’t used.

All links to Amazon products on this site are affiliate links; this means that we
may receive a small commission (at no cost to you)  if you subscribe or
purchase something through the links.
DONATE
Leave a donation to support this blog.

 
SUBSCRIBE TO BLOG VIA RSS

 RSS - Posts
ADVERTISMENT
TOOLS OF THE TRADE

Footer
SOCIAL

 View lpasqualis’s profile on Twitter


 View lpasqualis’s profile on LinkedIn
 View lpasqualis’s profile on GitHub
LEGAL
Disclaimer
Privacy Policy
Cross-Posting Policy
Copyright © 2020 By Lorenzo Pasqualis - All Rights Reserved

You might also like