Technologies
The stack listed on the Resume is the what. This page is the why: the principles that decide what makes it onto a project, and the references that shaped those principles.
Approach → choices
Choices are pragmatic — what serves the data and the decision, not what is fashionable. A handful of principles do most of the work:
- Open standards over vendor lock-in. OGC, INSPIRE, GeoParquet, MapLibre over proprietary equivalents. Migrations and handovers are cheap when the format is portable; expensive when it is not.
- Columnar and cloud-native by default. Parquet for archive, DuckDB for in-process query, Iceberg/DuckLake for tabular catalogs at scale.
- Reproducible infrastructure. Builds are deterministic from source — parquet generators in Python, sources catalogued as code, deployment as object-bucket sync.
- Cost-transparent serving. Static content where possible. The portfolio site itself for example has no runtime backend; the bucket is the deployment target.
Architecture
A representative (yet simplified) ingest-to-serve pipeline that recurs across client engagements: Airflow orchestrating ephemeral container jobs, parquet as the staging format across layers, PostGIS as the serving store, with object storage as the spine. I've built every layer end-to-end, from ingest through to data analysis and customer engagement.
This site's own architecture
A different shape entirely — no Airflow, no PostGIS, no API. The data layer is a folder of parquet files; DuckDB executes every SQL query in every page at build time; Evidence emits a static SvelteKit site; a CRON job re-runs the build daily and rsyncs the output into an Object Storage bucket. Walk-through on How this site is built.
Bookmarks and influences
A curated set of references behind the choices above — open data registries, extraction and serving tooling, AI plumbing, and a couple of well-built sample sites worth looking at.
Data sources
- Source Cooperative Public-interest data registry: large open geospatial datasets shared via cloud-native formats and STAC.
Data extraction tools
- GeoParquet Specification for cloud-native, columnar storage of vector geospatial data on top of Apache Parquet.
- QuackOSM DuckDB-powered CLI / Python library that turns OSM PBF extracts into GeoParquet with SQL-style filters.
- osm-geoparquet Scripts and notes for staging OpenStreetMap data into GeoParquet, optimised for analytical queries.
Data serving
- DuckDB · Quack overview DuckDB's geospatial story — in-process analytical SQL over Parquet, GeoParquet, and remote stores.
- TiPg OGC Features and Tiles API server backed by PostGIS — a lightweight FastAPI alternative to GeoServer.
AI tools
Python dev tools
- usethis-python Opinionated bootstrapper for Python projects: tooling, layout, configs — declarative, idempotent.
Cool samples
- OpenGridWorks · power plants Interactive map of US power infrastructure with toggleable layers for transmission, substations and right-of-way.
- isochrone.ch Public-transport reachability isochrones for Switzerland — clean SBB-data-driven travel-time visualisation.