All Roadmaps

Software Engineer

The essential foundations every software engineer needs — algorithms, system design, clean code, testing, and career growth.

Computer Science Fundamentals

The mathematical and theoretical foundations that make you a better engineer regardless of language or framework.

Data Structures

Arrays, linked lists, stacks, queues, hash maps, trees, heaps, graphs — when to use each.

Algorithms

Sorting (merge, quick, heap), searching (binary), graph (BFS, DFS, Dijkstra), dynamic programming.

Time & Space Complexity

Big O notation, best/worst/average case, space complexity, trade-offs between time and memory.

Operating Systems

Processes vs threads, memory management, virtual memory, file systems, I/O, concurrency primitives.

SOLID Principles

Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.

Design Patterns

GoF patterns: Singleton, Factory, Observer, Strategy, Decorator, Repository, Adapter.

Refactoring

Extract method/class, rename, move field — improve code structure without changing behaviour.

Scalability Fundamentals

Load balancing, horizontal scaling, stateless services, consistent hashing, CAP theorem.

Caching & Databases

Cache layers (CDN, app, DB), sharding, replication, SQL vs NoSQL decision framework.

System Design Interview

Framework: clarify → estimate → design → deep-dive. Classic problems: URL shortener, Twitter, WhatsApp.

Testing

Code without tests is broken by definition. Write tests that give you confidence to refactor.

Test-Driven Development (TDD)

Red → Green → Refactor cycle. Write the test first, make it pass, then clean up.

Unit & Integration Tests

Test in isolation vs test with dependencies. Mocking, test doubles, fakes, stubs.

Testing Pyramid

Many unit tests, fewer integration tests, few E2E tests — balance speed and confidence.

Version Control & Collaboration

Work effectively with a team using Git workflows, code reviews, and engineering norms.

Advanced Git

Rebase, cherry-pick, bisect, reflog, submodules, git hooks, interactive staging.

Code Review Best Practices

Give respectful, actionable feedback. What to look for: logic, readability, tests, security.

Technical Documentation

ADRs (Architectural Decision Records), README standards, inline comments when WHY is unclear.

Junior → Senior Progression

What differentiates levels: scope, independence, mentorship, technical judgment.

Technical Interviews

LeetCode prep (patterns not memorisation), behavioural (STAR method), system design.

Building in Public

Blog, open source, Twitter/X, Discord — build reputation and network simultaneously.