01 — Building
Projects
Production systems, open-source tooling and research side-projects. The production work is
described by what it does and what I built, not by whose data is in it — that part belongs to
the client, so the repositories stay private.
01Production · RAG
Retrieval over utility operations data
A retrieval system for a municipal water utility: hybrid retrieval with reranking over
operational meter data, reasoning across a knowledge graph so an operator gets an answer
with its evidence attached. Scored against a held-out evaluation set, not impressions.
FastAPIKnowledge graphRAGReact 19
Client work — repository private
02Production · Agents
Operations agent for a water grid
A tool-calling agent over a municipal water grid that reads the live system strictly
read-only, so it cannot act on infrastructure. I rebuilt a sprawling agent stack
substantially smaller and faster, with guardrails at every tool boundary and an evaluation
harness that covers adversarial inputs.
PythonAgentsLangGraphEval harness
Client work — repository private
03Production · Digital twin
3D digital twin for road infrastructure
A live 3D twin of motorway infrastructure for an international smart-mobility programme —
real-time telemetry streamed onto a Three.js map over PostgreSQL/PostGIS. Most of my work
was hardening a prototype into a build that could pass certification.
FastAPIThree.jsPostGISReact 19
Client work — repository private
04Production · Edge AI
Edge vision on street-level camera hardware
On-device detection running on municipal camera poles, with MQTT and serial control down to
the hardware. Offline-first by design: it keeps working through a cloud outage and recovers
a device that stops reporting.
PythonYOLOv5OpenVINOMQTT
Client work — repository private
05Open source
hwpkit
Read, fill and edit Korean HWP (Hancom Office) documents in Python: text extraction for LLM
and RAG pipelines, programmatic form-filling for government and university paperwork, and a
binary rewrite that does not corrupt the file.
PythonOLE/CFBRAG
06Research · Adversarial ML
Backdoor attacks on CLIP (BadCLIP)
Stealthy backdoor triggers in CLIP-style models via dual-embedding alignment in the joint
visual–textual representation space.
MultimodalCLIP
07Research · Adversarial ML
Semantic-aware multi-label adversarial attacks
Targeted perturbations for multi-label classifiers that exploit semantic label
co-occurrence dependencies rather than treating each label independently.
Multi-labelRobustness
08Research · Segmentation
Semi-supervised segmentation baselines
A systematic evaluation of weak-to-strong consistency (UniMatch) and self-training (ST++) —
the groundwork the four papers were built on.
SSLUniMatchST++
09Research · 3D vision
Monocular depth estimation (Depth Anything V2)
Depth estimation and point-cloud generation for autonomous driving, on an improved
depth-to-pointcloud pipeline over KITTI.
DepthKITTIPoint clouds
10Research · LLMs
Effective context length of LLMs (STRING)
Why a declared context length overstates the effective one — positional-encoding bias and
the STRING shifting method, measured across Llama, Mistral and Qwen.
NLPTransformers
11Full-stack
AgriLet — crop disease detection
Disease identification with severity scoring for smallholder farmers, plus structured
learning modules, community data contributions and downloadable datasets.
ReactTypeScriptPrisma
12Full-stack
eLearn — e-learning platform
O Level and A Level revision for African high-school students: 20+ subjects, 70+ lessons,
study streaks, a learning-analytics dashboard and full auth.
ReactExpressPrisma