What is BackEnd Development and How to be one

What is Backend Development

Backend Development is the term for behind-the-scenes activities that happens when you do anything on a website or web application. It is mostly referred to the server-side of an application and everything that communicates between the database and the frontend.

You can also say that it’s the server side of development that focuses primarily on how the site works.

Who is a Backend Developer

A Backend Developer is a skilled software developer responsible for or skilled enough to understand, plan, develop and test the server-side/business logic of an application. In conjunction with other team members, he is responsible for deciding the best and suitable tools and technologies for the project at hand.

Backend Development Tools and Technologies

Servers:

A computer that listens for incoming requests from the front end. Example of web servers are Apache Nginx, IIS servers, Tomcat.

Types of Servers: Static, Dynamic

A static web server or stack consists of a computer (hardware) with an HTTP server (software). We call it “static” because the server sends its hosted files as it is to your browser”. It response/server static content.

A dynamic web server consists of a static web server plus extra software, most commonly an application server and a database. We call it “dynamic” because the application server updates the hosted files before sending them to your browser visa the HTTP server.

In a simple term, Dynamic Server responses/serves dynamic contents.

Communication protocol (HTTP)

It comprises of the formal description of rules and formats of a digital messages.

Others

  1. Load balancing

  2. Message queues

Databases

Databases are frequently used on the Backend of an application. These provides data persistence. These databases provide an interface to save data in a persistent way to memory.

Types of database

  1. MYSQL

  2. MongoDB

Things to learn in databases as a Backend developer

  • Schemas

  • Normalization

  • Indexes

  • Stored procedure and triggers

  • Wide knowledge of SQL, DDL & DML

  • Views

  • Strong database optimization skills

Operating Systems

When it comes to operating systems, I think every software developer should have a strong knowledge of their operating system.

An operating system is a collection of software that manages computer hardware and provides services for programmes.

Types of Operating Systems

  • Linux

  • Windows

  • Mac OS

Every developer should have a basic knowledge of these OS concepts.

Things to learn in Operating Systems

  • Memory management

  • Cloud computing

  • Processes & process management

  • Inter process communication

  • Threads and concurrency

  • Input and output management

  • Scheduling

  • Distributed file system

  • Virtualization

Take a look at the 10 operating systems concept software developers need to remember by James Le.

Software Stack

There are great list of server-side programming languages and frameworks(Spring, Express) to choose from in building the business/server logic of any application.

The list below shows a recommended list of common topics a Backend developer should master in any programming language of choice.

  • Session management

  • Authentication & Authorization

  • Caching Mechanisms

  • APIs & Web Services

  • Software architectures (MVC)

  • Software design patterns

  • Algorithms and data structures

  • Structured logging

  • Debugging, profiling and tracing

  • Deployment

  • Software testing

  • Frameworks and Package Managers

Things to consider as a Backend Developer

  • Scalability

  • Security

  • Robustness

  • Readability

  • Performance Oriented

  • Maintainability

Roles of a Backend Developer

  1. Understands the goals of the software and comes up with effective solutions.

  2. Compile and analyze data, processes and codes to troubleshoot problems and identify areas of improvement.

  3. Collaborating with the frontend developers and other teams to establish objectives and design models (architecture).

  4. Manipulating data and ensure authorized access to it at all times.

  5. Developing, managing and working with external API resources across all devices securely.

  6. Organizing the logic of the system using and implementing proper algorithms.

P.S. This is a blog just to keep me motivated and to track my progress in public. A big shout out to Solomon Eseme for the amazing content. Do checkout his channel for more Backend content.

https://www.youtube.com/@solomoneseme