Systems Engineer
Deep dive into how computers actually work — from processes and memory to networks and distributed systems.
Programming Fundamentals
The essential programming concepts you need before going deeper.
Understanding how programs store and manage data
How programs make decisions and repeat actions
Organizing code into reusable, composable units
Where variables live and how they're accessed
Ordered collections of data and how to work with them
Key-value data structures for modeling real-world entities
Functions that call themselves to solve problems
Handling operations that take time: callbacks, promises, and async/await
Computer Hardware
From bare metal to boot — CPUs, memory, storage, and how hardware becomes software.
What a computer actually is at the physical level — circuits, transistors, and binary
How a CPU executes instructions — fetch, decode, execute, and the components that make it work
Registers, cache, RAM, and disk — why faster memory is smaller and more expensive
BIOS, UEFI, and what happens between pressing power and seeing your desktop
Operating Systems
Processes, threads, memory management, and how the OS orchestrates everything.
Independent programs running on your computer and how the OS manages them
Lightweight units of execution within a process
Understanding the difference between managing and executing multiple tasks
How the OS decides which process runs next
The cost of switching between processes or threads
How the OS and runtime allocate, use, and reclaim memory
How the OS gives each process the illusion of unlimited memory
How the OS organizes and stores data on disk
How programs communicate with the outside world through input and output
How programs wait for I/O and why non-blocking matters
Networking
How data moves across the wire — protocols, DNS, TLS, and load balancing.
Two fundamental transport protocols and when to use each
The protocol that powers the web
Encrypting communication to keep data secure in transit
Translating human-readable domain names into IP addresses
Key performance metrics for network communication
Designing web APIs using REST principles
Full-duplex communication for real-time applications
Distributing traffic across multiple servers for reliability and performance
Intermediary servers that handle requests on behalf of backend services
Distributed Systems
Building reliable systems across multiple machines.
Understanding the fundamental tradeoffs in distributed system design
Understanding consistency models and how distributed systems converge
How distributed systems copy data across nodes for reliability and performance
How distributed systems choose a single coordinator node
How distributed nodes agree on a single value despite failures
Designing operations that are safe to retry without side effects
Decoupling services with asynchronous message passing
Preventing cascade failures by failing fast when services are down
Controlling request volume to protect services from overload
Production Engineering
Deploying and operating systems in production.
Automated testing on every push and automated releases to production
Packaging applications into portable containers that run anywhere
Running code without managing servers using functions as a service
Understanding what your application is doing in production through logs, metrics, and traces
Safely reverting bad deployments and responding to production incidents
Defining reliability targets and learning from failures through blameless postmortems