How to become a good Backend Engineer?

Pradeesh Kumar
4 min readDec 26, 2022

--

Who is a Backend Engineer?

Essentially there are two elements to software development: front-end and backend. When visitors land on a website, they see the UI interact with it, which is the front end. The front end interacts with the user, collects the input and then passes it to the backend for further processing. The backend processes the requests received from the front end and returns the result back to the front end, which will be displayed in the UI.

Front-end engineers require knowledge of UI/UX development such as HTML, CSS, Js, designs, graphics, etc. Whereas the backend developers require knowledge of programming languages such as Java, Python, and Javascript and frameworks, tools and databases.

How to become a good Backend Engineer?

A backend developer’s role is to focus on components such as building architecture, and writing code that interacts with other systems such as websites, databases, message brokers, security etc

1. Programming Languages

Choose a programing language and master it. Learn all the essential libraries and frameworks of the programming language. Programming languages like Java, Python, and JS are popular nowadays. Build a strong knowledge on the most essential programming features such as basic structures, oops, basic data containers such as list, queue, stack, map/dictionary and thread programming and so on.

2. Data Structures and Algorithm

Most people neglect this in the initial stage and later suffer. Never do this mistake! Knowing the Data structures and algorithms makes your foundation stronger and helps you know how other large systems work internally. Learn the basic Data structures and algorithms such as Stack, Queue, Linked List, Tree, Graph, Hashing, Sorting & Searching Algorithms.

3. Database

The most basic functionality of a backend system is to persist and retrieve user data. There are several types of databases available to persist the data based on the requirement and domain. Learn a relational database like Postgresql, Mysql or Oracle. Also, learn the database concepts such as Normalization, Indexing, Joins, query optimization, ACID, Transactions, Object-relational mapping, scaling etc.

Nowadays, most projects use NoSQL over RDBMS because of its simplicity and scaling capability. Learn one or more NoSql databases such as MongoDB, Couchbase DB, etc.

4. Framework and Libraries

Learn the popular frameworks depending on the language you chose. The most popular framework for Java is the Spring framework. There are popular libraries available to perform the most common operations and utilities. For example, base64 encoding, validations, String utilities etc. Do not reinvent the wheel. Libraries help you avoid a lot of boilerplate code and make you focus only on your business logic with lesser code.

5. Containerization

Containerization is all about packaging your software code with just the OS libraries and dependencies required to run the code to create a single lightweight executable called a container that runs consistently on any infrastructure. Learn Docker and Kubernetes. They are the most popular tools for containerizing an application.

6. DevOps

DevOps is an essential skill to have these days. DevOps is all about creating the infrastructure such as the compute machine, infrastructure, network, servers and databases, connecting them together and running your application in the infrastructure.

7. Network

Knowledge of the network makes you create an effective and secure communication channel to transfer your data between the system. Learn the Web servers, TCP vs UDP, HTTP Protocols, WebSockets, gRPC, TLS, NAT, Proxy and Reverse Proxy, and Load balancers.

8. Asynchronous Processing

Sometimes the user doesn’t need the action to be taken on the input data immediately. We can queue the input for later processing and notify the result to the user once it’s ready. This kind of processing is known as asynchronous processing. Learn the basic publisher-subscriber model, queues and topics, apache active-MQ, Kafka, etc.

9. Security and Encryption

With increasing the risk of cyber-attacks and malware, The secured coding practice is the key thing a developer must know. Learn and understand the most common security risks such as SQL-Injection, Man-in-Middle attacks, broken authentication etc. Also, know how to mitigate them by securing your application by sanitizing your input data, encrypting them while transferring, and strong authentication and authorization.

10. Personal Project on GitHub

Creating a personal project with the skills you learned will help you know the deeper side of it. Learning a framework/tech stack is different from building an actual application by combining all the tech stacks. You might face errors and get an opportunity to know and fix such errors. It will also keep you stay updated with the latest technology. Keep developing personal projects and mention them in your LinkedIn profile and Resume, this helps the hiring managers to know your coding standard and technical skills.

--

--

Pradeesh Kumar

Computer Science | Distributed Computing | Databases | Cloud