In praise of small systems
A fictional technical essay about making software easier to understand, one boundary at a time.

A fictional programmer begins with a list of notes and an unnecessarily large plan. The useful question turns out to be smaller: what is the simplest thing the system needs to remember?
Give the data a shape
A type makes an assumption visible. In this example, a note has a title and a publication state.
type Note = {
title: string;
draft: boolean;
};
const publishedNotes = (notes: Note[]) =>
notes.filter((note) => !note.draft);
The function has one responsibility. Its result can be inspected without starting a server or understanding an entire application.
Make the boundary visible
A small system still needs a boundary between private work and public output. Filtering a list is not enough if a separate route exposes the same draft.
Leave a path back
Good tools make it easy to return to the question that prompted them. The fictional margin index project sketches one such tool.
More on Programming
- Technical articleFictional demoProgramming
Margin index
An imagined command-line notebook for keeping a trail through things read and learned over time.