Work: case studies & field notes
Recent work.
Case studies and papers, newest first: 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
Calibrating Free Postcode Boundaries from OpenStreetMap: A Transferable Seed-Density Accuracy CurveFree postcode boundaries built from OpenStreetMap addresses, with a calibrated accuracy curve that predicts how good they are before any reference map exists. Tested across five countries, deployed on all of Italy.
WORKING-PAPER
05
"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
06
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
07
Research pipelines are production systems: a seriesWhy research data pipelines deserve production discipline: the series opener.
EXPLANATION
08
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
09
When Does Metro Infrastructure Capitalize into Property Prices? Phase-Decomposed Difference-in-Differences Evidence from Seven European CitiesWhen do new metro lines show up in house prices? Across 42,000 observations from seven European cities, the market pays on delivery, not on promises, and the number worth defending is Milan's +167 EUR/m² within Ring D.
WORKING-PAPER
10
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
11
US vs EU: does training-data geography matter for autonomous-driving object detection?A controlled 2×3 fine-tuning study on YOLOv3/YOLOv8: US dashcam data transfers roughly nothing to European streets (+0.001 mAP vs +0.153 for in-domain data), and bicycle detection collapses without EU ground truth.
WORKING-PAPER