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
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
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
Claim status chatbot for an insurance platform
Problem
Customers of an insurance claims platform had to call or log in just to ask "where's my claim", tying up staff time on questions the claim record could already answer.
Approach
Built a conversational assistant with dual-mode authentication and a web front end, deployed as coordinated services behind a gateway so it can answer plain-language status questions without a phone call or a login.
Outcome
Verified across four user roles and eleven real claims in structured acceptance testing, giving customers a plain-language status answer on demand instead of a support queue.
Python · Rasa · Next.js · React · TypeScript · Docker · Docker Compose · AWS Fargate · CloudFormation · Bash · pytest · Vitest · Zod
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