Code a database in 45 steps: test-driven coding puzzles
trialofcode.org