Regarding 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 also known as server-side engineering 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:
API design and development.
Backend engineers deal with business and infrastructure logic.
Business logic is the logic defined by the business.
To create a new feature (or modify an existing one), a backend engineer is responsible for ensuring that the code follows and implements the component's business rules.
Business logic usually involves validation and flow.
The following example explains it well:
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 you need to make the code work. For example, if you 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 must be thoughtful about the endpoints to expose, what endpoints will return, etc.
API development means writing, testing and maintaining the code behind an API.
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.
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.
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.
What skills do you need to become a backend engineer?
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 of 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! 👋🏾