tail -f field_notes.log

Build it yourself

The databases, servers, and compilers you lean on every day are all buildable. Making a small one of your own is the fastest way to turn "it's just magic" into "oh, that's how it works." Here's where to start.

starter pack, picked from build-your-own.org: the cure for "it's just magic."

// systems · databases

Build your own database from scratch

A key-value store and a relational database in Go: persistence, B-trees, and transactions, with no framework hiding the hard parts.

build-your-own.org read ↗
// systems · networking

Build your own Redis (C/C++)

Clone Redis to learn network programming, data structures, and low-level systems work from the socket up.

build-your-own.org read ↗
// compilers

From source code to machine code

Write a compiler that turns a statically-typed language into real x64 ELF executables. The end of "compiler magic."

build-your-own.org read ↗
// networking · http

Build your own web server in Node.js

Implement a web server to really understand the HTTP protocol, sockets, and async/await, not just call a framework.

build-your-own.org read ↗
// the collection

build-your-own.org

The whole shelf of "build your own X" books. The fastest way to turn the tools you rely on into things you understand.

free · online browse all ↗

Building something? Share it.

Join the community to post what you're working on, swap projects, and get your work featured here.