Writing
Writing.
Field notes on building data and AI systems: what got built, what broke, and what it changed.
01
Could a free satellite have called Amsterdam's quay-replacement schedule?Amsterdam is replacing 200 km of historic quay walls, guided by divers and engineers. The Netherlands publishes a free millimetre-precision InSAR subsidence map. I put the free signal on trial: pre-registered prediction, four failure directions tested, and a mechanism-tested null (AUC 0.49) that turned out to be the interesting answer.
CASE-STUDY
02
The model inside FishFinder: ResNet50, fine-tuning, and when to freeze layersFishFinder classifies 63 Dutch fish species from ~3,000 photos. That only works because the model doesn't start from zero: a pretrained ResNet50, fine-tuned with layer-wise learning rates. Here is how transfer learning, freezing and discriminative LRs actually work, with the real numbers.
EXPLANATION
03
One JSON per Published Number: the Pipeline Contract That Made Adversarial Review CheapHow a one-script, one-JSON, one-figure contract turned a full methodology overhaul of the metro capitalization paper into a single working session instead of a rewrite.
EXPLANATION
04
"Pinned" should mean bytes-identical: a snapshot-guard operatorAn operator that treats pinned inputs as a contract: if the bytes changed, the pipeline should refuse to pretend otherwise.
EXPLANATION
05
A custom DuckDB operator: SQL-first ingestion in AirflowBuilding a custom Airflow operator that makes DuckDB the ingestion engine: SQL-first, testable, and cheap.
EXPLANATION
06
Research pipelines are production systems: a seriesWhy research data pipelines deserve production discipline: the series opener.
EXPLANATION
07
Parameters belong in the schema, not the filenameA pre-arXiv audit found the paper and its artifacts disagreeing about which hyperparameters produced the headline number, and nothing in the data model could settle it.
EXPLANATION
08
Seven Cities, 42,000 Observations, and a Headline That Hung on One Modeling ChoiceA phase-decomposed DiD across seven cities, and how one fixed-effects specification choice moved the headline result.
EXPLANATION