You can read more about the path itself and why I'm building the path around books and projects here:
About this blog
I’m creating the blog to share my expertise and experience in building software systems, and creating the path I missed when I started to become a master. I’m not ignoring AI, but I will not make it my primary topic, especially building software with agents and AI. Almost everyone on
Shared Foundation
Level 1: Network & Protocol
- Build your own Shell
- Build your own HTTP Server
- Build your own grep
Core Concepts
- Process Forking
- Pipes
- File Descriptors
- Signals
- TCP
- Request/Response Lifecycle
- Protocol Design
- Finite Automata
- Regex
- Lexer patterns
Data Structures & Algorithms:
- Arrays
- Hash Tables
- Stack & Queues
- Two Pointers
- Sliding Window
- String Algorithms (KMP, Rabin-Karp)
Resources
- Learning Go (Bodner)
- Network Programming with Go
- Clean Architecture
- A Philosophy of Software Design
Papers/RFCs
- POSIX.1-2017
- RFC 7230, 7231, 6455, 7540
- Thompson 1968 + Russ Cox 2007
Level 2: Storage Systems
- Build your own Redis
- Build your own SQLite
- Build your own Kafka
Core Concepts:
- In-memory data structures
- Persistence
- TTL
- B-Trees
- SQL Parser
- Query planner
- WAL
- Log-structured Storage
- Partitions
- Consumer Groups
Level 3: Language Internals
- Build your own Interpreter
Core Concepts:
- Tokenization
- AST
- Tree-walk interpreter
Level 4: Content Addressing
- Build your own Git
Core Concepts:
- Merkle Trees
- DAGs
- Content-Addressable Storage
Level 5: Network Depth
- Build your own DNS Server
Core Concepts:
- Binary Protocol
- UDP
- Recursive Solution
End Game
Track A: Operating Systems + Web Browser Engineering
Kernel Development, Web Browser.
Resources:
- Course: Developing a Multithreaded Kernel From Scratch! by Daniel McCarthy
- Operating Systems: Three Easy Pieces (Arpaci-Dusseau)
Topics:
- Virtual Memory
- Process Scheduling
- ELF
- Virtual Machines
Track B: Game Engine
Game Engine in C++.