A deep technical journey where you construct a full relational SQL storage engine from zero. Master lexical parsing, B-tree disk structures, buffer pools, WAL recovery, and query planners.
[KEYWORD - select] [IDENTIFIER - id] [SYMBOL - ,] [IDENTIFIER - name] [KEYWORD - from] [IDENTIFIER - users] [KEYWORD - where] [IDENTIFIER - id] [SYMBOL - =] [NUMBER - 1] [SYMBOL - ;]
A battle-tested methodology inspired by industrial software systems.
Each stage breaks down complex systems into clear conceptual diagrams and straightforward checklists.
Write true bare-metal algorithms in C, C++, Rust, or Zig. You allocate memory, handle binary file offsets, and build data representations directly.
Run our comprehensive integration test harness against your binary to verify byte-exact storage output and SQL correctness.
Every layer of a production database, constructed piece by piece.
Write a character scanner and recursive descent AST builder from scratch without Yacc/Bison.
Master 4KB binary disk pages, byte serialization, cell offsets, and B-Tree node splits.
Implement write-ahead logging and recovery algorithms to survive abrupt power losses.
Build a pull-based iterative relational operator pipeline for SeqScan, IndexScan, and Joins.
Handle multi-version concurrency control, transaction isolation, lock managers, and deadlocks.
Validate your custom binary against comprehensive, language-agnostic integration test suites.
6 progressive stages from simple command loop to full concurrent DBMS.
One fixed table, users(id, name, email), from a keystroke to bytes on disk and back.
From one hard-coded table with 60-byte rows to any table the user creates, with variable-length rows.
How the buffer pool decides what stays in memory, and how the file gets space back.
BEGIN, COMMIT, ROLLBACK, then a write-ahead log that survives a crash. One connection, no isolation levels.
Expressions, NULLs, IN and BETWEEN, projection, sorting in memory and on disk, LIMIT, aggregates, GROUP BY, DISTINCT, ALTER TABLE.
Secondary indexes, UNIQUE, composite and covering indexes, ANALYZE, a deterministic cost model, EXPLAIN ANALYZE, rewrite rules, Top-N.
Name resolution, nested loop, index, hash and merge joins, LEFT JOIN, cost-based algorithm choice and join order, foreign keys, subqueries.
A session multiplexer, row-level undo, a lock manager, deadlock detection, row versions with read views, isolation levels, purge.
Optional track after the eight core parts: the PostgreSQL wire protocol, prepared statements and a connection pooler. Runs from a downloadable kit on the learner's machine; not graded by the platform.
Record completed stages, track test executions, and save your workspace across machines.