Everything worth showing — distributed systems, production platforms, developer tools, AI engineering, published packages and the web and mobile products around them. Private client and employer work is included and described; only the source stays closed.
CGLS Technology · lead engineer · Innovate UK funded
An Innovate UK funded Python and FastAPI platform that scores the sustainability of housing development sites, used by planning assessors across five West Yorkshire councils — backend, geospatial data model, scoring engine, AWS and the React frontend, all mine.
FastAPI backend with Pydantic boundaries and async background jobs · MongoDB with 2dsphere geospatial indexing · per-dataset Python loaders and domain processors with Pandas · weighted 4-pillar scoring engine with an explain endpoint · Redis caching over expensive spatial computations · LLM assistant grounded in scored data · automated PDF reporting · React + MapLibre GL frontend · AWS EC2/S3/CloudFront
A Python LLM-based technical-debt analyser, scored in the same unit as SonarQube so the two are directly comparable — the empirical core of an MSc dissertation, benchmarked across ten repositories.
Python analysis pipeline · Git history sampling at configurable intervals · per-file churn and hotspot analysis · token-budget-aware prioritisation within an 80-file / 400k-character budget · Gemini analysis behind a free-tier rate limiter · FastAPI background jobs with live progress polling · Pandas over the results for longitudinal analysis · Next.js dashboard · CSV export and standalone HTML reports
A polyglot microservices food delivery platform — Python/FastAPI and Node.js/TypeScript services side by side — built to solve distributed-systems problems properly: distributed transactions, exactly-once effects over at-least-once delivery, and failure isolation that does not cascade.
6 services across Python/FastAPI and Node.js/TypeScript · database-per-service PostgreSQL · RabbitMQ saga with outbox, inbox, retry queues and DLQs · hand-written OpenTelemetry tracing to Jaeger in both languages · Prometheus + 5 provisioned Grafana dashboards · Kubernetes with HPA/VPA · Terraform for kind and EKS
A local-first runtime dashboard for Node.js backends: every HTTP request, SQL query, Redis command and console.log, streamed live and correlated back into the request that caused it.
A Python SDK giving one consistent storage interface across AWS S3, Google Cloud Storage and Cloudflare R2 — swap providers by changing a single string.
Pythonboto3AWS S3GCSCloudflare R2pytest
Abstract BaseProvider contract with three concrete implementations · typed result models identical across providers · unified exception hierarchy normalised at the boundary · environment-resolved per-provider config · batch operations and presigned URLs · fully mocked test suite · packaged with per-provider optional extras
The backend of a social live-shopping marketplace — orders, payments, wallets, logistics and real-time auctions — architected and owned end to end at up to 50,000 concurrent users.
A school management platform — academic sessions, timetables, class and subject assignment, student records and lesson notes — delivered ticket by ticket through review.
TypeScriptNode.jsMongoDBpnpmAWS SESDocker
TypeScript backend with a ticket-driven delivery workflow · academic session/term model · timetable and assignment matrix APIs · atomic student ID generation · XLSX bulk upload · Amazon SES email · Scalar API docs · containerised local dev stack
An AI-powered Nigerian real estate intelligence platform, built so the model reasons over live market data instead of hallucinating prices.
Node.jsExpressTypeScriptMongoDBOpenAI
Node.js + Express + MongoDB · service-oriented AI layer over GPT-4o · dynamic market context builder grounding every prompt in live aggregates · natural-language search with intent extraction and constraint relaxation · neighbourhood intelligence models with rents, safety scores, commute times and yields
A near-zero-dependency CLI that turns .env files from tribal knowledge into a schema a team can validate, audit and generate types from.
TypeScriptNode.jsnpm
.env.schema format with types, required/optional, format validators and modifiers · codebase audit for undeclared process.env usage including destructured and bracket-notation access · typed env.ts codegen that validates on import · team defaults sync that never overwrites local values · published on npm
A typed TypeScript CLI and library that scrapes and parses Google, Bing and DuckDuckGo into clean structured JSON.
TypeScriptNode.jsJest
Per-engine parsers behind a shared base parser · typed core and result models · user-agent rotation and request pacing · dedicated error hierarchy · CLI with table and JSON output, single-engine or all-engines · Jest test suite