Full Stack • Java • System Design • Cloud • AI Engineering

Backend Engineer Roadmap Complete Step-by-Step Learning Path

A complete Backend Engineer Roadmap for 2026 covering Internet fundamentals, Java, Git, databases, REST APIs, security, testing, caching, microservices, Kafka, Docker, Kubernetes, cloud, observability, scalability, and system design.

Backend engineering is the foundation of modern software systems.

Every application you use daily — banking apps, e-commerce platforms, insurance systems, social media platforms, payment systems, ride-sharing apps, and AI platforms — depends on strong backend engineering.

A backend engineer designs and builds the server-side systems that handle:

  • Business logic
  • APIs
  • Databases
  • Authentication
  • Authorization
  • Caching
  • Messaging
  • Security
  • Scalability
  • Observability
  • Cloud deployment

This roadmap gives you a structured learning path from beginner to advanced backend engineer.


Who Should Follow This Roadmap?

This roadmap is useful for:

  • Students
  • Freshers
  • Java developers
  • Spring Boot developers
  • Full stack developers
  • Frontend developers moving into backend
  • Backend engineers preparing for senior roles
  • Developers targeting technical lead or solution architect roles

Backend Engineer Roadmap Overview

flowchart TD

A[Backend Engineer Roadmap]
--> B[Internet Fundamentals]
--> C[Pick a Backend Language]
--> D[Version Control]
--> E[Databases]
--> F[APIs]
--> G[Security]
--> H[Testing]
--> I[Caching]
--> J[Architecture]
--> K[Message Brokers]
--> L[Containers]
--> M[Cloud and DevOps]
--> N[Scalability]
--> O[Observability]
--> P[System Design]

Visual Backend Learning Path

flowchart LR

Internet[Internet]
--> Language[Java / Python / Go / Node.js]

Language --> Git[Git and GitHub]

Git --> DB[Databases]

DB --> API[REST APIs]

API --> Security[Security]

Security --> Testing[Testing]

Testing --> Cache[Caching]

Cache --> Messaging[Kafka / RabbitMQ]

Messaging --> Microservices[Microservices]

Microservices --> Docker[Docker]

Docker --> Kubernetes[Kubernetes]

Kubernetes --> Cloud[AWS / Azure]

Cloud --> Observability[Monitoring and Logs]

Observability --> Scale[Building for Scale]

Scale --> Design[System Design]

Phase 1: Internet Fundamentals

Before learning backend frameworks, understand how the internet works.

Topics to Learn

  • How does the internet work?
  • What is HTTP?
  • What is HTTPS?
  • What is a domain name?
  • What is DNS?
  • What is hosting?
  • How browsers communicate with servers
  • Request and response lifecycle
  • Client-server architecture

Backend Request Flow

sequenceDiagram
    participant User
    participant Browser
    participant DNS
    participant Server
    participant Database

    User->>Browser: Enter URL
    Browser->>DNS: Resolve domain name
    DNS-->>Browser: Return server IP
    Browser->>Server: Send HTTP request
    Server->>Database: Fetch data
    Database-->>Server: Return data
    Server-->>Browser: Send HTTP response
    Browser-->>User: Display result

Real-Time Example

When a user opens:

https://codewithvenu.com/blog/Career/Roadmaps/02-BackendEngineerRoadmap

The browser performs DNS lookup, connects to the server, sends an HTTP request, receives HTML/CSS/JavaScript, and renders the page.

Checkpoint

You should be able to explain:

  • What happens when you enter a URL in the browser?
  • Difference between HTTP and HTTPS
  • Difference between domain and hosting
  • What DNS does
  • How client and server communicate

Phase 2: Pick a Backend Programming Language

A backend engineer can use many languages.

Popular backend languages:

  • Java
  • Python
  • Go
  • JavaScript / Node.js
  • C#
  • Ruby
  • PHP
  • Rust

For enterprise backend development, Java is one of the strongest choices.

Why Java for Backend?

Java is widely used in:

  • Banking
  • Insurance
  • Financial systems
  • Healthcare
  • Enterprise applications
  • Cloud-native systems
  • Microservices

Java Backend Learning Path

flowchart TD

A[Java Backend Path]
--> B[Core Java]
--> C[OOP]
--> D[Collections]
--> E[Streams]
--> F[Concurrency]
--> G[Spring Boot]
--> H[REST APIs]
--> I[Microservices]

Java Topics to Learn

  • OOP concepts
  • Collections
  • Exception handling
  • Generics
  • Streams
  • Lambda expressions
  • Multithreading
  • Virtual threads
  • JVM basics
  • Memory management

Checkpoint Project

Build a simple Java console application:

  • Banking system
  • Library management system
  • Student management system

Phase 3: Version Control Systems

Every backend engineer must know Git.

Topics to Learn

  • Git
  • GitHub
  • GitLab
  • Bitbucket
  • Branching
  • Merging
  • Pull requests
  • Code reviews
  • Release branches

Git Workflow

flowchart LR

A[Developer Code]
--> B[Feature Branch]
--> C[Commit]
--> D[Push]
--> E[Pull Request]
--> F[Code Review]
--> G[Merge to Main]
--> H[Deploy]

Common Git Commands

git init
git clone <repo-url>
git status
git add .
git commit -m "message"
git push
git pull
git checkout -b feature/backend-api
git merge main

Checkpoint

Create a GitHub repository and push a Spring Boot project.


Phase 4: Relational Databases

Backend engineers work heavily with databases.

Popular Relational Databases

  • PostgreSQL
  • MySQL
  • Oracle
  • SQL Server
  • MariaDB
  • SQLite

Topics to Learn

  • Tables
  • Primary keys
  • Foreign keys
  • Joins
  • Indexes
  • Transactions
  • ACID properties
  • Normalization
  • Query optimization

Database Relationship Diagram

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--o{ ORDER_ITEM : contains
    PRODUCT ||--o{ ORDER_ITEM : included_in

    CUSTOMER {
        long id
        string name
        string email
    }

    ORDER {
        long id
        date orderDate
        string status
    }

    PRODUCT {
        long id
        string name
        decimal price
    }

    ORDER_ITEM {
        long id
        int quantity
    }

SQL Example

CREATE TABLE customers (
    id BIGSERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(150) UNIQUE NOT NULL
);

CREATE TABLE orders (
    id BIGSERIAL PRIMARY KEY,
    customer_id BIGINT REFERENCES customers(id),
    order_date TIMESTAMP,
    status VARCHAR(50)
);

Checkpoint Project

Build:

  • Customer Order Management System
  • Product Inventory System
  • Banking Account Management System

Phase 5: ORM and Spring Data JPA

ORM means Object Relational Mapping.

In Java backend applications, Spring Data JPA helps map Java objects to database tables.

Topics to Learn

  • JPA
  • Hibernate
  • Entity
  • Repository
  • Relationships
  • Lazy loading
  • Eager loading
  • N+1 query problem
  • Transactions
  • Entity lifecycle

Spring Data JPA Flow

flowchart LR

Controller[REST Controller]
--> Service[Service Layer]
--> Repository[JPA Repository]
--> Entity[Entity]
--> Database[(Database)]

Entity Example

import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;

@Entity
@Getter
@Setter
@Table(name = "customers")
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String email;
}

Repository Example

import org.springframework.data.jpa.repository.JpaRepository;

public interface CustomerRepository extends JpaRepository<Customer, Long> {
    Optional<Customer> findByEmail(String email);
}

Checkpoint

Build CRUD APIs using Spring Boot and PostgreSQL.


Phase 6: Learn About APIs

APIs allow systems to communicate.

API Styles

  • REST
  • GraphQL
  • gRPC
  • SOAP
  • JSON APIs
  • OpenAPI Specification

For most backend engineers, REST APIs are the starting point.

REST API Structure

flowchart TD

Client[Client Application]
--> Controller[REST Controller]
--> Service[Business Logic]
--> Repository[Data Access]
--> Database[(Database)]

REST API Example

@RestController
@RequestMapping("/api/customers")
public class CustomerController {

    private final CustomerService customerService;

    public CustomerController(CustomerService customerService) {
        this.customerService = customerService;
    }

    @GetMapping("/{id}")
    public ResponseEntity<CustomerResponse> getCustomer(@PathVariable Long id) {
        return ResponseEntity.ok(customerService.getCustomer(id));
    }

    @PostMapping
    public ResponseEntity<CustomerResponse> createCustomer(
            @RequestBody CreateCustomerRequest request) {
        return ResponseEntity.ok(customerService.createCustomer(request));
    }
}

REST Best Practices

Use nouns, not verbs:

GET    /api/customers
GET    /api/customers/{id}
POST   /api/customers
PUT    /api/customers/{id}
DELETE /api/customers/{id}

Checkpoint

Build APIs for:

  • User management
  • Product management
  • Order management

Phase 7: Authentication and Authorization

Authentication answers:

Who are you?

Authorization answers:

What are you allowed to access?

Topics to Learn

  • Basic Authentication
  • JWT
  • OAuth2
  • OpenID Connect
  • SAML
  • Cookie-based authentication
  • Token-based authentication
  • Role-based access control

JWT Authentication Flow

sequenceDiagram
    participant User
    participant AuthAPI
    participant DB
    participant SecureAPI

    User->>AuthAPI: Login with username/password
    AuthAPI->>DB: Validate user
    DB-->>AuthAPI: User valid
    AuthAPI-->>User: Return JWT token
    User->>SecureAPI: Request with JWT token
    SecureAPI-->>User: Return protected data

Spring Security Example

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        return http
                .csrf(csrf -> csrf.disable())
                .authorizeHttpRequests(auth -> auth
                        .requestMatchers("/api/auth/**").permitAll()
                        .requestMatchers("/api/admin/**").hasRole("ADMIN")
                        .anyRequest().authenticated()
                )
                .build();
    }
}

Checkpoint

Build:

  • Login API
  • Register API
  • JWT-protected API
  • Role-based admin API

Phase 8: Web Security

Security is not optional.

Topics to Learn

  • HTTPS
  • SSL/TLS
  • CORS
  • CSP
  • OWASP Top 10
  • Password hashing
  • bcrypt
  • scrypt
  • SHA
  • API security best practices

Password Hashing Example

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}

Common Backend Security Risks

Risk Example Prevention
SQL Injection Unsafe query strings Use prepared statements / JPA
XSS Malicious script input Validate and encode output
CSRF Fake request from another site CSRF tokens
Broken Auth Weak login system Strong auth + JWT expiry
Sensitive Data Exposure Plain passwords Hash passwords

Checkpoint

Secure your authentication service using Spring Security and BCrypt.


Phase 9: Testing

Testing helps you ship reliable backend systems.

Types of Testing

  • Unit testing
  • Integration testing
  • Functional testing
  • Contract testing
  • Performance testing

Testing Pyramid

flowchart TD

A[End-to-End Tests]
--> B[Integration Tests]
--> C[Unit Tests]

JUnit Example

@ExtendWith(MockitoExtension.class)
class CustomerServiceTest {

    @Mock
    private CustomerRepository customerRepository;

    @InjectMocks
    private CustomerService customerService;

    @Test
    void shouldReturnCustomerById() {
        Customer customer = new Customer();
        customer.setId(1L);
        customer.setName("Venu");

        when(customerRepository.findById(1L))
                .thenReturn(Optional.of(customer));

        CustomerResponse response = customerService.getCustomer(1L);

        assertEquals("Venu", response.name());
    }
}

Checkpoint

Write tests for:

  • Service layer
  • Repository layer
  • Controller layer
  • Security layer

Phase 10: Caching

Caching improves application performance by reducing repeated database calls.

Caching Types

  • Client-side caching
  • CDN caching
  • Server-side caching
  • Database caching
  • Distributed caching

Popular Tools

  • Redis
  • Memcached
  • Hazelcast

Cache Flow

sequenceDiagram
    participant Client
    participant API
    participant Redis
    participant DB

    Client->>API: Get product by id
    API->>Redis: Check cache
    alt Cache hit
        Redis-->>API: Return product
    else Cache miss
        API->>DB: Query product
        DB-->>API: Return product
        API->>Redis: Store product
    end
    API-->>Client: Return response

Spring Cache Example

@Cacheable(value = "products", key = "#id")
public ProductResponse getProduct(Long id) {
    Product product = productRepository.findById(id)
            .orElseThrow(() -> new RuntimeException("Product not found"));
    return ProductResponse.from(product);
}

Checkpoint

Add Redis caching to product APIs.


Phase 11: More About Databases

Advanced backend engineers must understand database internals.

Topics to Learn

  • Indexes
  • Transactions
  • ACID
  • N+1 problem
  • Query profiling
  • Failure modes
  • Migrations
  • Data replication
  • Sharding
  • CAP theorem

Database Scaling Diagram

flowchart TD

App[Backend Application]
--> Primary[(Primary Database)]

Primary --> Replica1[(Read Replica 1)]
Primary --> Replica2[(Read Replica 2)]

App --> Cache[(Redis Cache)]

Checkpoint

Improve a slow API by:

  • Adding indexes
  • Avoiding N+1 queries
  • Adding pagination
  • Adding caching

Phase 12: CI/CD

CI/CD automates build, test, and deployment.

Tools

  • GitHub Actions
  • Jenkins
  • GitLab CI
  • Azure DevOps

CI/CD Flow

flowchart LR

Developer[Developer Push]
--> GitHub[GitHub Repository]
--> Build[Build]
--> Test[Run Tests]
--> Docker[Build Docker Image]
--> Deploy[Deploy to Server]

GitHub Actions Example

name: Java Backend CI

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Setup Java
        uses: actions/setup-java@v4
        with:
          java-version: '21'
          distribution: 'temurin'

      - name: Build Project
        run: mvn clean install

Checkpoint

Create CI pipeline for your Spring Boot application.


Phase 13: Software Design and Architecture

Backend engineering is not only coding. You must learn how to design maintainable systems.

Topics to Learn

  • SOLID principles
  • GoF design patterns
  • Domain Driven Design
  • Test Driven Development
  • CQRS
  • Event Sourcing
  • Clean Architecture
  • Hexagonal Architecture

Layered Architecture

flowchart TD

A[Controller Layer]
--> B[Service Layer]
--> C[Domain Layer]
--> D[Repository Layer]
--> E[Database]

Clean Architecture

flowchart TD

API[API Layer]
--> UseCase[Use Case Layer]
--> Domain[Domain Model]
--> RepositoryPort[Repository Interface]
--> RepositoryImpl[Repository Implementation]
--> DB[(Database)]

Checkpoint

Refactor a CRUD application using clean architecture.


Phase 14: Architectural Patterns

Backend systems can be built in different styles.

Patterns to Learn

  • Monolithic architecture
  • Microservices
  • SOA
  • Serverless
  • Service Mesh
  • Twelve-Factor Apps

Monolith vs Microservices

flowchart LR

subgraph Monolith
A[Single Application]
A --> B[Single Database]
end

subgraph Microservices
C[User Service] --> D[(User DB)]
E[Order Service] --> F[(Order DB)]
G[Payment Service] --> H[(Payment DB)]
end

When to Use Monolith

Use monolith when:

  • Team is small
  • Domain is simple
  • Application is new
  • Deployment complexity should be low

When to Use Microservices

Use microservices when:

  • System is large
  • Teams are independent
  • Services need independent scaling
  • Business domains are clearly separated

Checkpoint

Build a small e-commerce backend using microservices.


Phase 15: Message Brokers

Message brokers enable asynchronous communication.

Tools

  • Kafka
  • RabbitMQ

Use Cases

  • Order processing
  • Notifications
  • Audit events
  • Payment events
  • Inventory updates
  • Email processing

Kafka Event Flow

sequenceDiagram
    participant OrderService
    participant Kafka
    participant InventoryService
    participant NotificationService

    OrderService->>Kafka: Publish OrderCreated event
    Kafka-->>InventoryService: Consume event
    Kafka-->>NotificationService: Consume event

Checkpoint

Build event-driven order processing using Kafka.


Phase 16: Containerization

Containers make applications portable.

Topics

  • Docker
  • Dockerfile
  • Docker Compose
  • Images
  • Containers
  • Container registry

Docker Flow

flowchart LR

Code[Spring Boot App]
--> Dockerfile[Dockerfile]
--> Image[Docker Image]
--> Container[Running Container]

Dockerfile Example

FROM eclipse-temurin:21-jdk

WORKDIR /app

COPY target/backend-app.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]

Checkpoint

Dockerize your Spring Boot API.


Phase 17: Kubernetes

Kubernetes manages containers at scale.

Topics

  • Pods
  • Deployments
  • Services
  • ConfigMaps
  • Secrets
  • Ingress
  • Helm

Kubernetes Flow

flowchart TD

User[User]
--> Ingress[Ingress]
--> Service[Kubernetes Service]
--> Pod1[App Pod 1]
--> Pod2[App Pod 2]
--> DB[(Database)]

Checkpoint

Deploy your Dockerized Spring Boot app to Kubernetes.


Phase 18: Web Servers and API Gateway

Backend engineers should understand web servers and gateways.

Tools

  • Nginx
  • Apache
  • Caddy
  • API Gateway
  • Load Balancer

API Gateway Flow

flowchart LR

Client[Client]
--> Gateway[API Gateway]

Gateway --> UserService[User Service]
Gateway --> OrderService[Order Service]
Gateway --> PaymentService[Payment Service]

Checkpoint

Route multiple backend services through an API gateway.


Phase 19: NoSQL Databases

Not all use cases fit relational databases.

NoSQL Types

Type Examples Use Case
Document DB MongoDB, CouchDB Flexible JSON documents
Key-Value DB Redis, DynamoDB Fast lookup
Graph DB Neo4j Relationship-heavy data
Time Series DB InfluxDB, TimeScale Metrics and IoT data
Column DB Cassandra Large-scale writes

NoSQL Selection Diagram

flowchart TD

A[Choose NoSQL DB]

A --> B{Data Type?}

B --> C[JSON Documents]
C --> D[MongoDB]

B --> E[Key Value]
E --> F[Redis / DynamoDB]

B --> G[Relationships]
G --> H[Neo4j]

B --> I[Metrics]
I --> J[InfluxDB / TimeScale]

B --> K[High Write Scale]
K --> L[Cassandra]

Checkpoint

Use MongoDB for a product catalog or Redis for session storage.


Phase 20: Real-Time Data

Some systems need real-time communication.

Techniques

  • WebSockets
  • Server-Sent Events
  • Long polling
  • Short polling

Real-Time Flow

sequenceDiagram
    participant Client
    participant Server

    Client->>Server: Open WebSocket connection
    Server-->>Client: Connection established
    Server-->>Client: Send live updates
    Client-->>Server: Send user action

Use Cases

  • Chat applications
  • Trading platforms
  • Live notifications
  • Collaboration tools
  • Monitoring dashboards

Checkpoint

Build a real-time notification service.


Phase 21: Search Engines

Search engines help users find data quickly.

Tools

  • Elasticsearch
  • Solr

Search Flow

flowchart LR

Application[Backend App]
--> Database[(Database)]
--> Indexer[Search Indexer]
--> Elasticsearch[(Elasticsearch)]
--> SearchAPI[Search API]
--> User[User]

Checkpoint

Add search to product or blog content.


Phase 22: Building for Scale

Scalable systems handle growth.

Topics

  • Horizontal scaling
  • Vertical scaling
  • Load balancing
  • Throttling
  • Rate limiting
  • Backpressure
  • Circuit breaker
  • Graceful degradation
  • Load shedding
  • Migration strategies

Scaling Diagram

flowchart TD

Users[Users]
--> LB[Load Balancer]

LB --> App1[App Instance 1]
LB --> App2[App Instance 2]
LB --> App3[App Instance 3]

App1 --> Cache[(Redis)]
App2 --> Cache
App3 --> Cache

Cache --> DB[(Database Cluster)]

Circuit Breaker Flow

flowchart LR

Client[Client]
--> API[API Service]
--> CircuitBreaker{Circuit Breaker}

CircuitBreaker -->|Healthy| ExternalService[External Service]
CircuitBreaker -->|Failure| Fallback[Fallback Response]

Checkpoint

Add:

  • Rate limiting
  • Retry
  • Timeout
  • Circuit breaker

Phase 23: Observability

Observability helps troubleshoot production issues.

Three Pillars

  • Logs
  • Metrics
  • Traces

Tools

  • Prometheus
  • Grafana
  • ELK
  • Splunk
  • Datadog
  • OpenTelemetry

Observability Flow

flowchart LR

App[Backend Application]
--> Logs[Logs]

App --> Metrics[Metrics]

App --> Traces[Distributed Traces]

Logs --> Dashboard[Observability Dashboard]

Metrics --> Dashboard

Traces --> Dashboard

What to Monitor

  • API latency
  • Error rate
  • Throughput
  • CPU usage
  • Memory usage
  • Database connection pool
  • Kafka consumer lag
  • Cache hit ratio
  • Thread pool usage

Checkpoint

Add monitoring dashboard for your backend application.


Phase 24: DevOps and Basic Infrastructure

Backend engineers do not need to become full DevOps engineers, but they must understand infrastructure.

Topics

  • Linux basics
  • Shell scripting
  • Networking
  • DNS
  • Cloud basics
  • AWS EC2
  • AWS S3
  • AWS RDS
  • AWS CloudWatch
  • Terraform basics

Infrastructure Flow

flowchart TD

Developer[Developer]
--> CI[CI/CD Pipeline]
--> Registry[Docker Registry]
--> Kubernetes[Kubernetes Cluster]
--> App[Backend App]
--> DB[(Cloud Database)]
--> Monitoring[Monitoring]

Checkpoint

Deploy a backend app to AWS.


Phase 25: System Design

Senior backend engineers must design systems, not just write code.

Topics

  • URL shortener design
  • Notification system design
  • Payment system design
  • File upload system design
  • E-commerce backend design
  • Banking transaction system design
  • Logging system design
  • API rate limiter design

System Design Template

flowchart TD

Client[Client]
--> Gateway[API Gateway]
--> Auth[Auth Service]
--> Service[Business Service]
--> Cache[(Redis Cache)]
--> DB[(Database)]
--> Queue[Kafka Queue]
--> Worker[Background Worker]
--> Observability[Logs Metrics Traces]

Checkpoint

Design and implement:

  • URL shortener
  • Notification system
  • Order processing system

Final Backend Engineer Skill Map

mindmap
  root((Backend Engineer))
    Internet
      HTTP
      DNS
      Browser
      Hosting
    Language
      Java
      Spring Boot
    Database
      PostgreSQL
      MongoDB
      Redis
    APIs
      REST
      GraphQL
      gRPC
    Security
      JWT
      OAuth2
      OWASP
    Testing
      Unit
      Integration
      Functional
    Architecture
      Microservices
      DDD
      CQRS
      Event Sourcing
    DevOps
      Docker
      Kubernetes
      CI/CD
    Scale
      Load Balancing
      Caching
      Circuit Breaker
    Observability
      Logs
      Metrics
      Traces

Recommended Project Path

Follow this project sequence:

Beginner Projects

  1. Student Management API
  2. Employee Management API
  3. Product CRUD API

Intermediate Projects

  1. Authentication Service with JWT
  2. Order Management System
  3. Inventory Management System
  4. Blog API with PostgreSQL

Advanced Projects

  1. E-Commerce Microservices
  2. Kafka Order Processing System
  3. Real-Time Notification System
  4. API Gateway with Spring Cloud
  5. Redis Caching System

Architect-Level Projects

  1. URL Shortener
  2. Payment System Design
  3. Banking Transaction Platform
  4. Distributed Logging System
  5. AI-Powered Backend Assistant

Backend Engineer Career Progression

flowchart LR

Junior[Junior Backend Developer]
--> Mid[Backend Developer]
--> Senior[Senior Backend Engineer]
--> Lead[Technical Lead]
--> Architect[Solution Architect]

Final Summary

A strong backend engineer should understand more than just writing APIs.

You should become comfortable with:

  • Internet fundamentals
  • Java and Spring Boot
  • Databases
  • API design
  • Security
  • Testing
  • Caching
  • Messaging
  • Microservices
  • Containers
  • Cloud
  • DevOps
  • Observability
  • Scalability
  • System design

Backend engineering is the path from writing code to designing reliable enterprise systems.