I'm Louis Low, a Senior Software Engineer and AWS Cloud Practitioner based in Singapore. I lead the geospatial work for Agronomy and Farming Services as the subject matter expert for GEOS, and I'm a Technical Lead in training. Spatial data sits at the centre of that work: where a field is, what is growing on it and how it changes over a season are all geospatial questions before they are agronomic ones. This page covers the geospatial side of what I build and the tools I reach for. The companion AgriTech platform engineering page covers the wider platform these maps are delivered through, and the software engineering portfolio collects my earlier projects.
WHAT I WORK ON
- Satellite imagery pipelines: working from Sentinel-2 scenes at up to 10 m resolution, handling the bands and getting them into a form the rest of the pipeline can rely on.
- Vegetation indices and biomass: NDVI alongside proprietary in-house biomass indices. The research behind those indices is led by our R&D team; my side is implementing them and running them dependably over real fields.
- Raster processing in Python: rasterio and NumPy for the per-pixel work that turns imagery into a map somebody can act on.
- Agronomy map products: generating crop biomass maps and variable rate application (VRA) maps that agronomists and growers can act on in the field.
- Machine interoperability: exporting prescriptions to ISOXML, shapefile, John Deere and the other leading formats, so a map loads on the equipment that has to apply it.
- Map-driven services and APIs: exposing those maps and the data behind them to applications over REST and GraphQL, built on the same cloud microservice patterns as the rest of my work.
FROM PIXELS TO PRESCRIPTION
A biomass map and a VRA prescription are the two ends of one pipeline. It starts as a satellite scene and finishes as a file a tractor's controller can read:
- Imagery in: the Sentinel-2 bands covering the field and the date in question.
- Index out: NDVI and the in-house biomass indices, computed per pixel with rasterio and NumPy.
- Biomass map: the index raster turned into a picture of how the crop is actually growing across the field.
- Prescription: biomass turned into a rate that varies across the field instead of one flat rate applied everywhere.
- Export: written out to ISOXML, shapefile, John Deere and other leading formats for the machinery.
Every step has to hold up, because at 10 m a whole field may be only a hundred pixels across. Mistakes in projection, band handling or scaling do not average out at that size; they land directly on the rate a machine applies to the ground.
SPATIAL STACK
- Sentinel-2 satellite imagery (up to 10 m resolution)
- NDVI and proprietary in-house biomass indices
- rasterio
- NumPy
- Python
- Crop biomass and VRA map generation
- ISOXML, shapefile, John Deere and other VRA formats
HOW IT FITS THE REST OF MY WORK
Spatial data is rarely the whole system. The geospatial work sits on top of the same foundations as everything else I build: cloud microservices on AWS running request and event-driven architectures over Apache Kafka, with Redis caching and Auth0 machine-to-machine authentication, written in NestJS, Node.js and Python and surfaced through REST and GraphQL APIs to Angular and React front ends. They ship as serverless Lambda applications through GitHub Actions, are covered by TDD/BDD suites in Jest, and run under Instana and Datadog. A map is usually one view onto a service that also has to be reliable, observable and cheap to run.
GEOS itself is written to SOLID principles, which matters most where the domain keeps moving: a new biomass index or a new controller format should be an addition rather than a rewrite.
My current geospatial work is covered by client confidentiality, so individual systems aren't detailed here. If you'd like to talk through the specifics, please get in touch.
Contact me > AgriTech architecture > View Portfolio >