Systems Fundamentals
How computers actually work underneath the abstractions.
11 posts · Engineering
- 1
The Big Picture: Why Systems Fundamentals Are Durable
Welcome. Before we touch a single database or network protocol, let's answer the most important question: why learn this stuff at all, and why will it still be…
- 2
How a Computer Runs Your Program: CPU, Memory, Processes & Threads
You write code in a language like Python, Java, or JavaScript. But a computer's brain — the CPU (Central Processing Unit, the chip that does all the…
- 3
Concurrency & Parallelism: Doing Many Things at Once
Modern programs rarely do just one thing at a time. A web server answers thousands of users at once.
- 4
Databases I — Relational Databases, SQL & ACID
Almost every serious application needs to store data — orders, users, payments, messages — and get it back later, correctly, even when many people use the app…
- 5
Databases II — How Databases Store & Find Data Fast (Indexes, B-Trees, LSM)
In the last section you learned what a database is . Now we open the hood and look at the most important question of all: when you ask a database for one row…
- 6
Databases III — Scaling Up: Replication, Partitioning & NoSQL
So far you have used one database on one server. For most apps, that is fine. But as an app grows, one server eventually struggles.
- 7
Networking I — How Data Travels: IP, TCP/UDP, DNS
Every distributed app is just programs on different machines talking to each other over a network.
- 8
Networking II — The Web Stack: HTTP, TLS, Load Balancing & Caching
In the last networking section we covered the lower-level pipes of the internet: IP addresses, TCP, UDP, and DNS. Those are the roads and the addressing system.
- 9
Distributed Systems — Many Computers Working as One
A distributed system is a group of separate computers that work together over a network (the wires and wireless links that carry data between machines) so…
- 10
Data Engineering — Moving & Shaping Data at Scale
So far in this guide you have learned where data lives (databases), how to run software across many machines (distributed systems), and how bytes travel…
- 11
Putting It Together — Designing a Real System & Trade-offs
This is the capstone section. Until now you have learned five separate topics: databases (where data lives), caching (keeping copies of data close by for…