Imke Vos

the notebook of imke vos

Notes from the machine room.

I’m Imke, a backend engineer in Rotterdam. This is where I write down what I learn about databases, build tools and the bugs in between, usually with a terminal still open.

now: reading the Postgres source, one page at a time. What else

A page of squared paper with a hand-drawn B-tree: a root box, two branch boxes and a row of leaves, with a yellow sticky note reading “3 reads!”.

Latest posts

The archive
  1. Reading a B-tree page by hand

    Open an index with pageinspect, walk from the root to a single row and see what an index actually promises.

    Postgres from the inside · part 2databasesdebuggingpostgres

  2. The flaky test was a time zone

    A test that only failed after 5 pm, and the one-line date parse behind it.

    debuggingjavascripttesting

  3. What actually happens on INSERT

    From the parser to the write-ahead log: following one row into a Postgres table.

    Postgres from the inside · part 1databasespostgres

  4. A build system in 200 lines: the graph

    Topological order, cycles that explain themselves and running independent steps in parallel.

    A build system in 200 lines · part 3rusttooling

  5. Make your errors boring

    A good error says what happened, where, and what to do next. Everything else is decoration.

    api-designrust

3 parts · 27 min

Postgres from the inside

A slow walk through the storage layer, with pageinspect open the whole time: heap pages, B-tree indexes and vacuum.

  1. 01What actually happens on INSERT
  2. 02Reading a B-tree page by hand
  3. 03Vacuum, seen from the page

3 parts · 23 min

A build system in 200 lines

Writing a small, correct build tool in Rust, one idea per post: why, content hashing and the dependency graph.

  1. 01why bother
  2. 02hashing inputs
  3. 03the graph

2 parts · 16 min

CSS for backend people

The parts of CSS I wish someone had explained to me in terms I already knew: precedence rules and layout algorithms.

  1. 01the cascade
  2. 02layout without tears

newsletter

New posts, by email

One email when a post goes up, about twice a month. Plain text, no tracking pixels, one-click unsubscribe. Prefer a feed reader? There’s RSS.