Somebody dropped the production table
DeveloperDoku is a series of logic puzzle books for developers. Each case is a floor plan on a five by five grid and a handful of colleagues who were in the building when something went wrong. Everyone stands in a different row and a different column. The clues are files you would open at work anyway: a postgres log, a badge reader script, a Slack export, a git blame. Place every person on the plan and one of them turns out to be standing where it happened.
You need a pencil, not a laptop. The code and the queries are printed on the page and you run them in your head, time zones and NULLs included. The full reasoning for every solution is at the back of the book.
DROP TABLE customers;
A case from Incident Reports, Cachebury- Console A2
- Access point B3
- Coffee machine B5
- Printer C3
Pick a suspect to trace them through the files.
- Everyone stands in a different row and a different column.
- The DROP was typed at the console. Whoever typed it was the only person in the server room.
- The kitchen door only opens with a badge, and logs every swipe.
- Only the culprit lies.
2026-10-02 01:12:04 UTC [48213] root@prod LOG: statement: DROP TABLE customers;INSERT INTO employees (id, name, badge_id)VALUES (1, 'Jack', '0x3F'), (2, 'Maya', '0x1A'), (3, 'Nina', '0x77'), (4, 'Raj', NULL), (5, 'Sam', '0x2C');
# kitchen door · Europe/London02:05:22 0x3F IN02:14:40 0x1A IN02:21:09 0x3F OUT
02:12 sam in the fishbowl. demo just died on screen02:12 jack at the coffee machine. out of beans, again02:13 maya open office, right next to Nina02:13 raj at my desk in the corner, VPN is crawling02:13 nina standing at the printer. prod is down??
Who dropped the customers table?
The general editions
Or in your language ↓Volume 1
Incident Reports
Release nights, outages and a leaked API key at a scale-up office. The evidence is postgres logs, git history, badge readers, wifi access points and Slack. This is the place to start, and the one to give a colleague who has written a postmortem or two.
- postgres.log
- git log
- badge.log
- wifi
- #slack
Volume 2
Legacy Code
Every case is set in a different year: a mainframe room in 1983, a LAN party in 1997, New Year's Eve 1999 at an insurer in Arnhem. You read BASIC, COBOL, DOS batch files, IRC logs and fax headers, printed on tractor-feed paper. Mind the two-digit years and the twelve-hour clocks.
- BASIC
- COBOL
- AUTOEXEC.BAT
- IRC
- fax
Volume 3
Game Over
Crunch week at a game studio, a few days before launch. Someone leaked the build, someone pushed the patch that crashes on boot. Crash dumps, engine logs and build server output place people in the studio, and telemetry places their avatars in the level that was being playtested that night. You solve both grids at once.
- crash.dmp
- engine.log
- build output
- telemetry
Volume 4
Data Crimes
Almost every clue is a query with its result set, so JOINs, NULLs and GROUP BY decide who stood where. Each case comes with a QR code to a SQLite file, so you can run the queries for real when you get stuck. Written for data analysts and for anyone learning SQL.
- JOIN
- NULL
- GROUP BY
- case.sqlite