What Does a Backend Engineer ACTUALLY Do?
Tags: webdev, programming, career
Published: 2021-12-29 10:01:00

When it comes to software engineering, it's challenging to imagine what a backend engineer does daily. As a backend engineer, I get this question often: "What do you do"? 😁

This article will address this subject.

#### WHAT DOES A BACKEND ENGINEER DO? ####

A backend engineer is the type of engineer responsible for creating the skeleton of a software application. 

Backend engineering is sometimes known as [server-side engineering](https://techwithmaddy.com/client-server-architecture-with-examples) because backend engineers deal with everything that happens on the server. 

Backend engineering is not client-facing. The user doesn't see or interact with a software application's backend.

#### WHAT ARE THE RESPONSIBILITIES OF A BACKEND ENGINEER? ####

I've grouped the duties of a backend engineer into five primary responsibilities:

✅ Software logic.

✅ API design and development.

✅ Database management.

✅ Third-party services.

✅ Infrastructure operations.

#### SOFTWARE LOGIC ####

Backend engineers deal with *business* and *infrastructure* logic.

Business logic is the logic defined by the business.
 
Whenever we have to create a new feature (or maybe even modify an already existing one), our responsibility is to ensure that the code follows and implements the component's business rules.

Business logic usually involves *validation* and *flow*.

To understand this further, I found this [example ](https://softwareengineering.stackexchange.com/questions/234251/what-really-is-the-business-logic) helpful and exciting to read:

> In one application, the business folks will say this is a business rule, and so you write code to enforce this business logic (validation). Another application will say that if the number of items ordered is greater than the number of items in stock, to accept the order and then to place your own order for the difference plus 20%, and so you will write this business logic (flow).

Infrastructure logic instead is the logic that describes how the software application operates. Classes that contain infrastructure logic define what we need to make the code work. For example, if we get an XYZ HTTP response, then do XYZ.


#### API DESIGN AND DEVELOPMENT 

API design and development are some of the core activities of a backend engineer. 

Backend engineers work in close contact with frontend engineers and UX designers. 

Backend engineers need to be thoughtful about the endpoints to expose, what endpoints will return, etc. 

API development means writing the code.

#### DATABASE MANAGEMENT  

Backend engineers spend time curating and interacting with the database. 

Database management can involve deciding and creating the entities to store in the database, generating new tables or modifying the existing ones by adding or removing new columns, modifying the constraints, etc. 

#### THIRD PARTY SERVICES ####

A software application has many moving pieces. It's not just a language with a framework. 

Nowadays, software applications are connected to third party services such as Amazon Web Services, Stripe, Google Pay, etc. 

Backend engineers interact with those services and also embed them in software applications.

#### INFRASTRUCTURE OPERATIONS ####

Backend engineers also deal with infrastructure work. 

They are responsible for the performance, optimization and security of an organization's software application.

Infrastructure work can involve dealing with monitoring/alerting services to track the performance of an application. An example of a monitoring service is  [New Relic](https://newrelic.com/).

#### What skills do you need to become a backend engineer? ####

- Server-side languages: Java, PHP, JavaScript, Python, etc.
- Backend frameworks: Spring, Django, Flask, etc.
- Databases: MySQL, PostgreSQL, etc.
- Version Control: Git, BitBucket, etc.
- Web services: REST and SOAP.
- Cloud computing (Amazon Web Services, Google Cloud Platform, Azure).
- An awareness around security, performance, scalability and maintainability.

I hope you've now understood what a backend engineer does. It is more abstract than frontend engineering but essential to ensure the smooth running of a software application.

Are you a backend engineer? Do you agree with the five points described above? Let me know in the comments.

Until next time! 👋🏾

P.S: if you enjoyed this article, you might benefit from subscribing to my [newsletter](https://techwithmaddy.com/newsletter) where I share curious tips around tech, software engineering and career development. I hope to see you there!