Backend isn’t just APIs and CRUD.
This is the roadmap companies like Google, Meta, Amazon expect you to know.
DSA
> Companies like Google don’t care about your projects if you fail here.
> This is the real filter.
> Conquer this, and every door in tech opens.
> Struggle here, and those doors stay shut.
0. Ground Setup
Before going crazy with topics, you need:
> One main backend language (JavaScript/TypeScript, Go, Java, Rust — pick one and master it)
> Git + GitHub: branching, PRs, rebases, conflict resolution
> Linux basics: ls, cd, cat, grep, find, permissions, SSH
> Editor mastery: VS Code or any solid setup
First principles here:
> What is a program? How does source code become a running process?
> What is an OS process vs thread?
> What does it mean to run a server on a port?
You should be able to:
> SSH into a Linux box, pull a repo, install deps, run a server on a port, view it via browser
---
1. Core Backend Fundamentals
1.1 Networking and HTTP
You cannot be a strong backend engineer if HTTP is just “that thing Express uses”.
Understand:
> DNS → IP → TCP → HTTP
> Difference between IP / TCP / UDP / HTTP / HTTPS
> HTTP methods, status codes, headers, idempotency, safe methods
> REST vs RPC vs GraphQL
Practice:
> Build a backend without any framework using native http
> Parse JSON body manually
> Implement basic rate limiting
> Add API versioning (/v1, /v2)
---
1.2 API Design and Backend Architecture Basics
First principles:
> Resource modeling
> Stateless vs stateful
> Consistent naming, validation, clear errors
> Pagination, filtering, sorting
Layered architecture:
> Controller → Service → Repository (DAO)
You should be able to:
> Design APIs for Task Manager or Expense Tracker
> Keep error and response structure consistent everywhere
---
2. Databases and Data Modeling
Big companies will grill you here.
2.1 Relational Databases
SQL is non-negotiable.
Understand:
> Table, row, column, primary key, foreign key
> Normalization: 1NF, 2NF, 3NF basics
> Joins: inner, left, right, full
> Transactions and ACID
> Indexes and their impact
You should be able to:
> Instagram schema: users, posts, likes, comments, followers
> Query top posts, mutual followers
> Use migrations, not manual DB edits
---
2.2 NoSQL and When to Use It
Understand:
> Document DB vs relational DB
> Denormalization
> Event logs and analytics needs
> CAP theorem basics
> Collections, documents, indexes, aggregation pipeline
Be able to decide:
> When a feature needs SQL vs NoSQL
---
3. Authentication, Authorization and Security
3.1 Auth Basics
Understand:
> Authentication vs authorization
> State vs stateless auth
> Password hashing (bcrypt/argon2)
> Cookies: HttpOnly, Secure, SameSite
> Access vs refresh tokens
> Token revocation and rotation
> Basics of OAuth2 / OpenID Connect
You should be able to:
> Implement email/password auth with verification and forgot password
> Explain cookies vs localStorage
> Explain token invalidation strategies
---
3.2 Web Security Core
Understand:
> SQL injection, XSS, CSRF, IDOR (OWASP Top 10)
> Input validation and output encoding
> CORS and preflight
You should be able to:
> Identify common vulnerabilities in APIs
> Configure CORS correctly
---
4. Concurrency, Performance and Scalability
4.1 Concurrency and Asynchrony
Understand:
> Event loop, callback queue, microtasks
> Blocking vs non-blocking I/O
> CPU-heavy work blocks Node
You should be able to:
> Explain when to use worker threads and offloading
---
4.2 Caching
Concepts:
> In-memory vs Redis caches
> TTL, LRU, invalidation
> HTTP caching: ETag, Last-Modified, Cache-Control
You should be able to:
> Use Redis to cache DB queries and rate limit
> Plan cache keys well
---
4.3 Scaling and Architecture Patterns
Understand:
> Vertical vs horizontal scaling
> Stateless services for scale-out
> Load balancers
> Monolith vs microservices
> Sync vs async flows (queues)
Patterns:
> Circuit breaker
> Retry with backoff
> Idempotency keys for POST
You should be able to:
> Split a monolith into services and make them communicate
---
5. Messaging, Queues and Async Systems
Understand:
> RabbitMQ, Kafka, Redis streams
> Producers, consumers, delivery semantics
Use cases:
> Emails, uploads, payment pipelines, logs
You should be able to:
> Offload heavy jobs to background workers
> Build async workflows
6. Testing and Quality
Understand:
> Unit, integration, E2E tests
> Test pyramid
> Deterministic vs flaky tests
You should be able to:
> Test auth flows and business logic
> Run tests in CI (GitHub Actions or similar)
7. DevOps Basics for Backend Engineers
7.1 Containers and Deployment
Understand:
> Dockerfile basics (FROM, COPY, RUN…)
> Docker Compose for app + DB
> Environment variables and config
You should be able to:
> Containerize backend and DB
> Deploy to any cloud provider
7.2 CI/CD and Observability
Understand:
> CI pipelines: tests, lint, build
> Auto deploy workflows
> Logging and metrics
You should be able to:
> Add logging middleware with request IDs
> Monitor latency, error rate, throughput
8. System Design
This becomes crucial for big tech interviews.
Understand:
> Load balancer, app server, DB, cache, queue, file storage
> Consistency models
> API Gateway and BFF patterns
> Unique ID generation (UUID, Snowflake)
Practice on paper:
> URL shortener
> Instagram feed
> E-commerce checkout
> Notification systems
Consider:
> DB schema, caching, queue usage, failure handling
9. Domain-Specific Knowledge
Depending on role and product:
> Fintech: strong consistency, audit logs, idempotency
> E-commerce: carts, pricing, orders, inventory
> Real-time: WebSockets, SSE, backpressure
Choose what aligns with your career direction and keep grinding.
Tips to solve any DSA question by understanding patterns
If the input array is sorted then
- Binary search
- Two pointers
If asked for all permutations/subsets then
- Backtracking
If given a tree then
- DFS
- BFS
If given a graph then
- DFS
- BFS
If given a linked list then
- Two pointers
If recursion is banned then
- Stack
If must solve in-place then
- Swap corresponding values
- Store one or more different values in the same pointer
If asked for maximum/minimum subarray/ subset/options then
- Dynamic programming
If asked for top/least K items then
- Heap
- QuickSelect
If asked for common strings then
- Map
- Trie
Else
- Map/Set for O(1) time & O(n) space
- Sort input for O(nlogn) time and O(1) space
(Source: whatsapp)