AI & software projects

Selected engagements framed as problem, approach and outcome — anonymised by default, named only where a client has agreed.

Abalone detection for an aquaculture producer

Problem

An aquaculture producer needed to count and size abalone from tank and underwater imagery, but reviewing footage by eye did not scale as stock volumes grew and slowed down decisions the team needed to make daily.

Approach

Built a web application backed by segmentation and classification models that detect and count abalone in uploaded images, with GPU-accelerated inference queued in the background and an active-learning loop so the model keeps improving as staff review new images.

Outcome

Image segmentation with active learning replaced manual counting.

Python · Django · PyTorch · Celery · Redis · Docker · OpenCV · scikit-image · SciPy · Computer Vision · NVIDIA CUDA

Applied AI/ML

Claim document extraction for an insurance platform

Problem

An insurance claims platform received accident notification reports, odometer photos and vehicle ID plates as unstructured images attached to each claim. Staff retyped the same fields — odometer reading, VIN, accident narrative — by hand from every attachment before a claim could be triaged.

Approach

Built an event-driven pipeline that classifies each attachment, then routes it to the right extraction model: fast plate recognition for number plates, layout-aware OCR for odometer readings and VIN plates, running on serverless infrastructure that scales to zero between claims.

Outcome

Key-information extraction pulled VIN, odometer and ANR straight from photos.

Python · ONNX Runtime · YOLO · PaddleOCR · OpenCV · AWS Lambda · AWS Batch · Amazon SQS · Docker · FastAPI · PyTorch · scikit-learn · MLflow · Pydantic · Boto3

Applied AI/MLData & document automation

Aerial imagery pipeline for offline field mapping

Problem

Crews working a large remote site needed high-resolution offline maps of it, but the aerial imagery, elevation and boundary data were scattered across separate public catalogues and tile services, in formats no mapping app could load directly and none of them usable without a signal.

Approach

Built a command-line pipeline that resolves imagery from several public catalogues through one adapter layer, caches every tile it fetches, optionally upscales them with super-resolution models, and packages the result with elevation and vector overlays into a single offline map bundle.

Outcome

Scattered public imagery, elevation and vector sources become one offline map package a field mapping app reads directly, rebuilt repeatably from a single command rather than assembled by hand.

Python · GeoPandas · Rasterio · STAC · WMTS · Shapely · Typer · Pydantic · structlog · MBTiles · DTED · KML · httpx · Docker

Applied AI/MLIntegrations

Cleaning scheduler for short-stay rental properties

Problem

A short-stay property manager had to check several booking calendars by hand to work out which properties needed a clean before the next guest arrived.

Approach

Built a scheduling service that polls each property's booking calendar, detects new bookings by comparing snapshots over time, and automatically generates a cleaning task for every booking's checkout date, with a web dashboard for monitoring.

Outcome

Turned a manual, error-prone calendar check into an automated daily task list, removing the need to cross-reference bookings by hand.

Python · Flask · APScheduler · Pydantic · Web Scraping · REST API · Scheduling · pytest · python-dotenv · tenacity

Custom softwareIntegrations

Protocol emulator for AV control touchpanels

Problem

Programs for Crestron AV control systems could only be developed and tested against physical touchpanel hardware, so every developer needed the real kit on the bench before a single line could be exercised.

Approach

Implemented the vendor's native control-over-IP protocol from scratch as a C# socket server, using a circular buffer to handle the TCP stream and a connection layer that accepts real touchpanels and virtual panels alike, with digital, analog and serial joins abstracted behind event-driven views.

Outcome

Control-system programs can be built and tested end to end with no physical hardware present, including list, keypad and D-pad interface objects, with protocol handling kept separate from application logic.

C# · .NET · TCP/IP Sockets · NUnit · Windows Forms · Crestron · AV Control Systems

Custom softwareIntegrations

Repair quote extraction for automotive claims

Problem

Automotive repair quotes arrived as unstructured PDFs, and every labour line, part and total had to be re-keyed by hand before a claim could be compared or approved.

Approach

Built a document-AI pipeline that runs text detection ahead of a layout-aware model fine-tuned on real repair quotes, converting each PDF into a structured record of labour items, parts and totals through a set of coordinated services.

Outcome

Reached an 88.79% F1 score across 189 extracted entity types on 200+ real-world repair quotes, replacing manual re-keying with structured data.

Python · LayoutLMv3 · PaddleOCR · Flask · Redis · AWS EC2 · AWS S3 · AWS SNS · Supervisor · Docker · Pydantic · Jinja2 · s3fs · NLP · Computer Vision

Applied AI/MLData & document automation

Situational-awareness app for remote site operations

Problem

An operator coordinating crews across a large remote site needed shared live mapping, team tracking, messaging and navigation on their own phones, still working with no signal. The open platform that does all of that is built for specialists, and far too complex to hand to general field staff.

Approach

Built an Android app on an open-source field coordination platform, layering a simplified role-based interface over its mapping engine, and moved the whole native toolchain into a multi-stage container build that compiles the geospatial libraries for 64-bit Android and assembles the app in one pass.

Outcome

A role-simplified build of a specialist field coordination platform that ordinary crew can actually use, with its native dependency chain reproducible from a single containerised build instead of a hand-configured developer machine.

Android · Kotlin · Jetpack Compose · C++ · Gradle · Docker · Conan · CMake · NDK · Protocol Buffers · JOGL · Python · Shell Scripting

Custom softwareIntegrations

Have a problem to solve?

Get in touch