Day 9 - Different engineers you might get in your team: Backend, Frontend, Fullstack, ...
In today's #adventcalendar post, we will go through different titles among software engineers and developers and what each one of them covers.
We will talk about the following roles (first 4 are published now):
Frontend Engineer
Backend Engineer
Fullstack Engineer
DevOps Engineer
QA Engineer
Security Engineer
Mobile Developer
Data Engineer/Scientist
Game Developer
Embedded Software Engineer
Database Engineer
Network Engineer
Let's get started!
Frontend Engineer
One of the most common engineers you might have on your team is Frontend Engineers, or in short "FEs".
Frontend engineers are responsible to develop the visuals and experience of everything in your "web application". The 3 pillars of frontend development have been (and still are): HTML, Javascript, and CSS.
But due to many reasons (fit for another day), almost all of the new frontend applications use a "framework" that standardizes best practices and ways of working, gives some functionalities outside of the box, and opens up a platform of plugins to be installed instead of developing in house.
According to the "State of JS" survey for 2021, the following 3 frameworks are the most commonly used in 2021 (results for 2022 to be published next year).
React
Angular
Vue
💡 Check out other sections in the "State of JS" survey for the 2021 report and familiarise yourself with other platforms, and aspects of the software, ...
Backend Engineer
Frontend software is the easiest one to explain because it's mostly all the things you see. But things get messier as you move "back". Â Backend engineers enable other tools and software (including the frontend software) to interact with your core business logic and data.
They enable this by providing APIs for other systems and handling the business logic on the "Server" side.
Common backend technologies and servers widely used are:
NodeJS
Python
PHP
Ruby on Rails
Server-side languages (Java, Ruby, or Python, .NET)
API communication protocols (REST, SOAP, RPC)
Databases (MySQL, MongoDB, Oracle, SQLServer)
Servers (Apache, Nginx, IIS servers, Microsoft IIS)
And referring to the State of the JS again:
Fullstack
After covering "backend" engineers very briefly, we arrive at Fullstacks. It's easier to describe them after we covered FEs and BEs (backend developers) because:
They do both Frontend and Backend. Sounds like the best of two worlds, no?
But there is a catch.
Even though in theory they are doing both backend and frontend depending on the application, company needs, and even toolset and frameworks, almost always a full fullstack is either majorly an FE or BE (let's say 80%), and the rest is doing the other platform.
Fullstacks are very popular in the early stages of a company or an app since "one person" can do everything and halves the costs at least.
More on human resource optimization later!
DevOps Engineer
As a recap, DevOps ensure your development operations run smoothly, the code your engineers work on get merged into proper repository and branches, it is fully tested and is delivered to the correct environment (development, staging, or production).
You might think yeah we covered almost all engineer types you might have on your team, but I need to make a disclaimer that there are many more types. We haven't touched anything on Mobile developers (let alone native or cross-platform developers), Security engineers, Embedded software engineers, Game developers, Networking Engineers, Database Engineers, and many more.
Curious to know about these? Sign up (for free) and continue reading about the rest of the engineering roles.