Guide
The modern data-science stack.
A map of how I work, from a fresh laptop to a running pipeline. Each stop has a short overview of my current setup, and the posts that go deeper will be attached to it.
Stop 1
Set your computer up.
I am a terminal maximalist: the editor, the file manager, the git client and the data viewer all live in the terminal, so the same setup works on a laptop, a Linux box and a phone. Neovim is the editor, just gives every project the same commands, tv is my one fuzzy finder, and lazygit, yazi and VisiData cover git, files and data. A computer at home that is always on runs the long jobs, Tailscale connects all my devices and Blink puts the terminal on my phone, so data science works from anywhere.
Posts for this stop
Stop 2
Coding in 2026 (with agents).
Coding agents do the typing, and I keep the decisions. uv is the cleanest way to manage Python, for me and for the agents: one tool for versions, environments and dependencies. A global CLAUDE.md carries my conventions to every project, skills package the repeatable jobs, and OpenSpec turns an idea into a plan before any code is written. herdr keeps every agent in one view, and a focus timer I built stops me from vibing on too many projects at once. All of it lives in a dotfiles repository, so a new machine gets the same setup with one clone.
Posts for this stop
Stop 3
How to analyse data.
I start with a look at the data and end with a document. VisiData is my spreadsheet in the terminal, far better than Excel and extensible in Python. DuckDB is my favourite tool: SQL straight on CSV, Parquet and JSON files, and one-file databases for whole projects. marimo gives me reactive notebooks with SQL cells that I can open remotely from any device, and Quarto turns the results into reports, papers and slides, at work and in academia. On the teaching side, my Big Data course for R is here too.
Posts for this stop
Stop 4
How to bring this to production.
Production starts with a pipeline that knows what is outdated: I began with targets in R and Snakemake in Python and now use DVC, with dvcat as its terminal UI I built. git carries the code, and I tried jj but it does not work with DVC. A daily job runs on Google Cloud as a container on Cloud Run, scheduled by Cloud Scheduler and released with one just recipe, so nothing depends on my laptop.
Posts for this stop
More stops coming