Imke Vos

archive

Every post, by year

14 posts since June 2024. Looking for something in particular? Search or browse by tag.

2026 8 posts

  1. Vacuum, seen from the page

    Dead tuples, the free space map and why VACUUM almost never gives disk space back.

    Postgres from the inside · part 3databasespostgres

  2. 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

  3. The flaky test was a time zone

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

    debuggingjavascripttesting

  4. 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

  5. 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

  6. Make your errors boring

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

    api-designrust

  7. A build system in 200 lines: hashing inputs

    Timestamps lie and content hashes don’t. Deciding when a step is really out of date.

    A build system in 200 lines · part 2rusttooling

  8. A build system in 200 lines: why bother

    Writing a tiny build tool is the fastest way to understand the big ones.

    A build system in 200 lines · part 1tooling

2025 4 posts

  1. Notes from a year of on-call

    What forty-one pages at 3 am taught me about alerts, runbooks and sleep.

    careerdevops

  2. SQLite is my favourite queue

    For most side projects, a table and a transaction beat a message broker.

    databasessqlite

  3. CSS for backend people: layout without tears

    Flexbox for one dimension, grid for two, and the three properties behind most layouts.

    CSS for backend people · part 2css

  4. CSS for backend people: the cascade

    Specificity, order and inheritance, explained as a merge conflict.

    CSS for backend people · part 1css

2024 2 posts

  1. Profiling a slow endpoint with nothing but logs

    No tracing, no flame graphs: timestamps, awk and a hunch.

    debuggingperformance

  2. Hello, notebook

    Why I started writing things down in public, and what to expect here.

    meta