What I do
I build the software that sits between satellite archives and real decisions. My work spans the whole chain: finding and preparing Earth observation data, measuring change with radar and optical sensors, training models that survive contact with new places, and shipping the result as an API, an alert or a map someone can act on.
Most geospatial projects fail in the gaps between disciplines: a model with no reliable data pipeline, a pipeline with no validation, a validated map that never reaches the people who need it. Because I work across all of these — and maintain open-source tools for each — I can take a problem from a bounding box and a date range to a deployed, validated answer, and tell you honestly where that answer stops being reliable.
How I approach any problem
-
01
Start from the decision
Before any data is downloaded I pin down who will act on the result, what they will do with it, and how much error they can tolerate. That fixes the resolution, the sensors, the timeline and the metric that defines success.
-
02
Get the data right
Federated search across 22 verified providers, checksum-verified downloads, atmospheric correction, cloud masking and STAC-catalogued, cloud-native outputs. Clean inputs prevent most downstream surprises.
-
03
Baseline before complexity
A simple index, a classical InSAR chain or a ResNet-50 comes first. A foundation model or a graph network has to beat it on the same split to earn its place.
-
04
Combine physics with learning
Radar and optical fusion, atmospheric corrections, physics-informed losses and multi-temporal stacks: the model respects how the sensor and the landscape actually behave.
-
05
Validate where it is hard
Spatial-block and zone-based cross-validation, held-out tiles, field surveys and published references. Random splits flatter models; I test them in places they have never seen.
-
06
Ship it and document the limits
APIs, alerts, dashboards, QGIS plugins and reproducible notebooks — delivered with tests, CI and a written account of what the result can and cannot support.
Six disciplines
-
SAR & InSAR
Millimetre-scale ground motion from radar — measured, corrected and honestly reported.
Explore -
Geospatial AI & Computer Vision
Models that hold up outside the training tiles.
Explore -
EO Data Engineering
Reliable pipelines from satellite archives to analysis-ready data.
Explore -
Backend & Cloud
Geospatial products people can use — APIs, alerts and dashboards in production.
Explore -
Applied EO Research
Digital twins and monitoring for agriculture, forests and coasts.
Explore -
Field Survey & Validation
Ground truth that makes remote sensing trustworthy.
Explore
Principles I work by
- 1
Honest about limits
Caveats are part of the deliverable. In the Mexico City study I reported that the network split into 17 disconnected SBAS components, so the result is a directional check, not a validated replication.
- 2
Open and reproducible
My core tools — pygeofetch, pygeovision, pyunwrap and ps-gnn — are MIT-licensed, on PyPI and archived with Zenodo DOIs. You can rerun everything.
- 3
Validated in space, not just in time
Spatial cross-validation is my default, after diagnosing a crop-disease model that scored 95.8% in training but near zero on smallholder farms.
- 4
Grounded in the field
Trained as a geomatic engineer, I have run GNSS, Total Station and UAV surveys myself, so validation is designed in rather than bolted on.
- 5
Built for the end user
Results go where people already are: WhatsApp and SMS alerts, PDF reports, QGIS, live dashboards.
Ways to work together
Research collaboration
Joint work on InSAR, GeoAI, EO foundation models or validation methods — papers, datasets and open tools.
Contract & consulting
Scoped projects: a pipeline, a model, a monitoring system or a feasibility study, delivered with code and documentation.
Full-time roles
Geospatial software engineering, EO research engineering and GeoAI positions in Europe, Africa or remote.
Training & capacity building
Through EOCoreINT: applied remote sensing and GeoAI with open tools and real West African examples.
