
I build scalable Earth observation pipelines that turn decades of satellite imagery into consistent environmental measurements, enabling organizations to measure the impact of climate interventions at scales where field monitoring isn't feasible.
20+ years of satellite imagery · 5 countries · Agriculture · Wildfire · Renewable Energy · Urban Planning
A satellite sees 13 spectral bands where the eye sees three. The work is teaching a model to read semantic environmental structure out of that invisible spectrum.
How do we teach a computer to see what an ecologist sees? We moved beyond pixel-wise classification because standard CNNs lost spatial continuity across cloud shadows — forcing a pivot toward multi-spectral U-Net segmentation that preserves shape and edge, then validating against hand-labelled masks.
I build geospatial pipelines that transforms complex climate data into pixel-level suitability maps that pinpoint exactly where biophysical signatures align for the highest spatial return on investment.
A water-saving policy that works in the Mekong isn't automatically portable. We built a water-balance suitability model over hydrological index and topographic slope — because fragmented, sloped terrain quietly breaks the assumptions that made AWD succeed at home.
My experience with building cloud-native geospatial pipelines spans from implemented STAC-based metadata discovery for Cloud-Optimized GeoTIFFs (COGs) on AWS S3, leveraging parallel Xarray/Dask for scalable compute, to utilizing GeoParquet for columnar serialization of satellite embeddings.
Why out-of-core Dask chunking over standard in-memory arrays? Because a 25-year Landsat archive silently exceeds RAM and the naïve pipeline dies at the memory boundary. Lazy, chunked graphs let the same laptop reason over continental extents.
I used Foundation Model embeddings to identify ecologically identical 'digital twins,' allowing me to isolate the true causal effect of environmental interventions from the background noise of climate variability. I don't just ask 'What changed?', I ask 'Why did it change, and was our intervention the reason?
Satellite embeddings (AlphaEarth) let us pick donor regions that are physically similar, not just statistically convenient. Embedding-matched controls cut pre-treatment error by 49% — so the residual gap reflects the policy, not the noise.
I built geospatial backend for Fuego.Earth, a wildfire spread platform, validated against historical fire perimeters and shaped by conversations with responders and utility planners about what they actually need.
A forecast that arrives after the fire has moved is useless. Vectorising Cell2Fire and streaming topography lets responders re-run scenarios in seconds — turning a research model into a tool someone can hold during an actual event.