Sheet 03 · Project register
Projects
Some things I work on
MyFarmWeb
The client-facing agronomy platform: interactive maps, data exploration and reporting for farmers and agronomists.
- Led a full rewrite of the client-facing frontend, improving performance, usability and platform adoption.
- Developed regional-scale data exploration and export tools that process years of data quickly.
- Moved static and spatial content delivery onto a CDN, improving caching efficiency and global latency.
- Architected and delivered online service ordering, integrating with existing operational and scheduling workflows.
- TypeScript
- React
- OpenLayers
- WebGL
- AWS
Mobile
Field applications for capturing survey data and reporting from the field.
Capture — led the refactor, redesign and production deployment of a business-critical field app, reducing support burden while improving release confidence, user experience and maintainability.
- Hand-coded advanced digitising features: performant survey gridding, manual digitising, and GPS-track-based digitising.
In-field reporting — led development on a cross-team project compiling location-aware in-field text, voice and image recordings into context-enriched, editable reports for agronomists and agents to share.
- React Native
- TypeScript
Data
The data layer beneath the platform: pipelines, analytics and document generation.
- Led the design and implementation of a centralised crop data platform, aligning and cleaning data across multiple legacy systems into a single source for analytics and reporting.
- Built an analytics API with DuckDB and tRPC, aggregating large and disparate Parquet datasets without bypassing the platform’s access controls.
- Redesigned the storage and processing of large spatial datasets, substantially reducing storage costs.
- Designed and built a bespoke PDF map-book templating engine, dramatically cutting turnaround from sample collection to delivery.
- TypeScript
- DuckDB
- tRPC
- Parquet
- Postgres
- AWS
Platform
The internal tooling, packages and constraints the rest of the platform is built on.
- Designed the internal packages, tooling and contribution constraints so that safety is enforced by the guard rails themselves rather than left to code review — opening the platform to a wider set of contributors.
- Built CI/CD pipelines and automated end-to-end testing across multiple frontend applications.
- Led the replacement of the Capture app’s syncing layer.
- TypeScript
- TurboRepo
- pnpm
- Cloudflare Workers
- GCP
Personal
Easy-to-use thematic maps of South Africa.
Each thematic map is a mini-system in its own right, with its own data pipeline, caching layer and scheduled jobs behind it.
- Built entirely from publicly available datasets.
- Nothing is proxied live except select API tiles; the rest is ingested on a schedule rather than fetched on demand.
- Cached aggressively and selectively at every layer.
Design2Digital
Client work
A small software consultancy delivering production systems for clients across banking, agriculture and marketing.
Co-founded a consultancy delivering production software for a range of clients, contributing to architecture, implementation and delivery while owning defined technical scope alongside engineers, designers and client stakeholders.