This series of test-driven small coding puzzles lets you code a database from scratch (no dependencies). There are 45 puzzles, most puzzles are fewer than 50 lines of code, covering ALL major aspects of databases, such as KV storage engines, LSM-Tree indexes, SQL, concurrent transactions, ACID , etc. This sounds complicated, but software dev often evolves dealing with complexities , a skill not learned from tutorial-ish code or simple CRUD jobs.