Project catalog
Geospatial platform engineering and spatial data tooling, plus the open-data and rail-advocacy work that runs alongside it. Filter by kind, or open any sheet.
Platform
3 entries- SHEET 012024 — present
Geospatial Analysis Platform
Sole developer · production tool used daily by a consultancy
Designed and built the in-house geospatial analysis platform for a Dutch mobility consultancy — a full-stack web application that turns transport and demographic data into planner-ready maps and figures. It ships a suite of spatial tools: modal-split visualisation, origin–destination spider diagrams, accessibility mapping, traffic viewers, cross-section profiles, and thematic map export.
FastAPIReactPostGISQGISTypeScriptPython- +7+ spatial-analysis tools in one platform
- +Used daily by the full consultancy team
- +FastAPI · React · PostGIS · QGIS
- SHEET 022025 — present
Geospatial MCP Server
AI agents that run spatial analysis in plain language
A Model Context Protocol server, published on PyPI, that exposes geospatial OGC processes and a project knowledge base to LLM agents. It lets an assistant answer "how accessible is this neighbourhood?" by actually running the analysis — every result is citation-grounded so claims trace back to a source.
PythonFastMCPModel Context ProtocolOGC APIClaude API- +Published on PyPI
- +Workflow-named, citation-grounded tools
- +Bridges OGC processes to LLM agents
- SHEET 032024 — present
Self-Hosted Data Infrastructure
IT admin & platform engineer for the whole stack
Architected and operate a self-hosted data platform on a dedicated Linux server: a PostGIS database, object storage, the OGC API, analytics dashboards, single sign-on, automated backups, and a full observability stack. Container deployments are managed through Coolify behind a Traefik reverse proxy — full ownership of the infrastructure, no managed-cloud lock-in.
DockerLinuxCoolifyPostgreSQLTraefikPrometheus- +PostGIS · object storage · SSO · backups
- +Coolify + Traefik container orchestration
- +Prometheus / Grafana / Loki observability
Geospatial
3 entries- SHEET 042025 — present
OGC Data API & Spatial Processes
Standardised spatial backend behind the platform
Built a standards-based geospatial API on pygeoapi, backed by PostGIS and DuckDB-on-GeoParquet. It exposes feature collections, vector tiles, and spatial-analysis routines as OGC API Processes, with self-describing catalog endpoints so both the web tools and external clients consume one consistent, documented interface.
pygeoapiOGC APIPostGISDuckDBGeoParquetMVT- +15 feature collections · 9 OGC API Processes
- +DuckDB-on-GeoParquet analytics layer
- +Self-describing /catalog introspection
- SHEET 052025 — present
Branded Map Viewer & PDF Export
Client-facing map galleries with print-quality output
A SvelteKit + MapLibre map viewer with deck.gl layers and print-to-PDF map chrome — a region-aware layout that wraps any web map in a branded, presentation-ready document. Its first client-facing deployment was a public map gallery for an air-quality monitoring programme.
SvelteKitMapLibre GLdeck.glTypeScript- +SvelteKit · MapLibre GL · deck.gl
- +Print-to-PDF with branded map chrome
- +First public client-facing deliverable
- SHEET 062025
3D Rail-Corridor Scrollytelling
Interactive map-driven storytelling experiment
A scroll-driven 3D map story of a rail corridor, built with deck.gl, MapLibre and Scrollama. The camera flies between waypoints over extruded 3D buildings and terrain, all sourced from open data — a template for turning a spatial analysis into a narrative a non-technical audience can follow.
deck.glMapLibre GLScrollamaWFSSvelteKit- +deck.gl + MapLibre + Scrollama
- +3D buildings (3D BAG) + terrain DEM
- +Built entirely on open, no-key data
Data
4 entries- SHEET 072024
CO₂ Commuting Calculator
MSc thesis · transport emissions accounting
A tool for Dutch employer commuting-emissions (WPM) reporting that compares accounting methods head to head. It surfaced a 38.7% gap between tank-to-wheel and well-to-wheel figures — a difference large enough to change which interventions look effective.
PythonPandasEmissions Modelling- +38.7% gap between emissions methods
- +Tank-to-wheel vs well-to-wheel accounting
- +MSc thesis, EIT Urban Mobility
- SHEET 082024
Aviation Impact Analysis
Civic-tech data project · Amsterdam Noord
Processed 1.4 TB of ADS-B flight data from the OpenSky Network to analyse Schiphol operations and aircraft-noise exposure over Amsterdam Noord — building the evidence base for a neighbourhood concerned about overhead traffic.
PythonDuckDBGeoPandasOpenSky API- +1.4 TB ADS-B flight data processed
- +OpenSky Network ingestion pipeline
- +Noise-exposure analysis for residents
- SHEET 092024
OpenRitardi
Open-data project for Italian rail transparency
A community open-data project to track and publish Italian railway delays, addressing the lack of accessible public-transport performance data and giving riders and advocates evidence to push for better service.
PythonOpen DataAPIs- +Open delay data for Italian rail
- +Community-driven transparency
- SHEET 102024
CBS Demographic Grid Analysis
Spatial data engineering · Dutch statistics
Integrated the Dutch national statistics grid (CBS, at 100 m and 500 m resolution) into PostGIS for population, housing and infrastructure analysis — the demographic backbone that many of the platform’s accessibility and mobility tools query against.
PostGISPythonCBS DataSQL- +100 m & 500 m CBS statistical grid
- +PostGIS spatial query backbone
Advocacy
2 entries- SHEET 112024 — present
Open Night Train Database
Data owner & network analysis · Back-on-Track Europe
An open dataset of every scheduled night-train connection in Europe, paired with a reproducible network-analysis pipeline. It quantifies the night-train network — services, countries, route-kilometres, cross-border share — to give rail advocacy evidence instead of anecdotes.
PythonGTFSNetworkXGeoPandasPostGIS- +404 active services · 26 countries
- +68,627 km of night-train network mapped
- +Reproducible GTFS + graph pipeline
- SHEET 122025
European Sleeper — Venice Launch
Coordinator · Back-on-Track Italy
Coordinated the welcome for the first scheduled night train to arrive in Venice, with partnerships with IUAV University and the PIONEER Alliance — turning a timetable change into a public moment for cross-border rail.
Event CoordinationAdvocacyPartnerships- +~40 participants (in person + online)
- +IUAV University + PIONEER Alliance partners
- +First scheduled night train into Venice
Want to build something?
I'm interested in work that puts spatial data and platform engineering to use for cities and mobility.
Get in touch





