Software Engineer
Clean code, design patterns, system design, databases, and APIs. Plus the behaviour-under-stress topics most paths skip.
CS Fundamentals
Software Engineering Brain
Central hub for all software engineering knowledge. Every page in the SE brain connects here.
CS Fundamentals
Clean Code
Writing code that is easy to read, understand, and change. Clean code is not about aesthetics — it's about reducing the cognitive cost of every future change.
CS Fundamentals
System Design
How to design systems that scale — the vocabulary, tradeoffs, and building blocks used in every production architecture interview and real backend design conversation.
CS Fundamentals
Database Design
Designing relational database schemas for correctness, performance, and maintainability. Good schema design prevents bugs, makes queries fast, and reduces the cost of future changes.
CS Fundamentals
API Design
Designing HTTP APIs that are intuitive, consistent, and maintainable. Good API design is about the consumer's experience — the API is a product, not just an implementation detail.
CS Fundamentals
Test-Driven Development
Write a failing test before writing code. The test defines the contract; the implementation satisfies it.
↳ Test-driven development in practice
CS Fundamentals
Concurrency
Running multiple tasks that overlap in time. Concurrency is about structure (managing many tasks); parallelism is about execution (running on multiple CPUs simultaneously).
↳ Threads, async, race conditions, locks — most production bugs live here
CS Fundamentals
Distributed Systems
Systems where computation spans multiple machines connected by a network.
↳ Retries, idempotency, eventual consistency
CS Fundamentals
Error Handling Patterns
Designing error handling that is informative, testable, and does not silently swallow failures.
↳ Timeouts, retries, circuit breakers — real backend engineering
CS Fundamentals
Performance Optimisation
Systematic approach to improving system performance: measure first, optimise the bottleneck, measure again.
↳ CPU vs IO, memory leaks, slow queries — measure, do not guess
CS Fundamentals
Debugging Systems
Debugging as a first-class engineering skill — systematic elimination, correlation IDs, tracing across services, and reproducing production failures.
↳ Systematic debugging under pressure: correlation IDs, tracing across services, reproducing production bugs
CS Fundamentals
OS Internals
OS behaviour that explains production failures — processes vs threads, virtual memory, CPU scheduling, file systems, and what OOM kills and context switches actually cost.
↳ Why your process was OOM killed, what a context switch costs, processes vs threads
12 pages · ~7h estimated reading time
← Browse all topics