Systems
What happens once the code leaves your laptop — event loops, message brokers, databases, caching, APIs, and testing.
- The Event LoopWhy JavaScript can serve thousands of connections on one thread, what the queues actually are, and the single line of code that stops all of it.
- Concurrency and ParallelismThe difference between doing many things at once and doing many things at the same instant — and the three ways to get the second one in a single-threaded runtime.
- DatabasesWhat an index actually is, why the column order matters, what the isolation levels really guarantee, and the one bug that is fast in dev and fatal in production.
- Caching and RedisWhy a cache is a hash table with a memory budget, why invalidation is the hard part, and why a cache without a TTL becomes a second database with no consistency story.
- Message BrokersQueues and logs, why exactly-once delivery does not exist, and how to build idempotent consumers that make it not matter.
- API DesignREST's actual guarantees, why cursor pagination beats offset, and the two GraphQL bugs — N+1 and the shared DataLoader — that leak other users' data.
- TestingWhy the pyramid is the wrong shape for a backend, why fakes beat mocks, and why a test that mocks the database passes while the query is wrong.
- Delivery and OperationsWhy renaming a column correctly takes six deploys, why liveness and readiness checks are not interchangeable, and why you should alert on symptoms rather than causes.
- The System Design ProcessWhy a box diagram is not a design, and what turns a guess at "how many servers" into a set of numbers someone else can check.
- Distributed SystemsWhy a network call is not a function call, what a partition actually forces you to give up, and why "the request timed out" never tells you whether it ran.
- ScalabilityWhy vertical scaling ends at a wall you can name in advance, what sharding actually costs you, and why "add more servers" is not a strategy until you know what state those servers share.
- Distributed TransactionsWhat a transaction spanning two services actually means when there's no shared lock, why a saga is not a transaction with extra steps, and the actions you cannot undo once they've happened.
- Consensus and CoordinationWhy a cluster can't tell a slow node from a dead one, how that single fact forces the quorum rule, and why a lock built on a cache expiring after a timeout is not a lock.