I design and ship deployment pipelines, serving layers, and observability so teams can trust their models in production and know what it costs.
Reliability
Engineered to stay up
Health-gated deploys, error budgets, on-call runbooks, and rollback paths so failures stay contained.
Latency
Budgeted to user value
User-facing inference paths kept responsive through batching and cache design under real traffic profiles.
Cost control
Spend kept in check
Quantisation, right-sizing, capacity planning, and scheduling tuned to product usage curves.
Time to prod
Low-drama launches
Prototype-to-production paths with staged rollouts and rollback plans.
Prototype works in notebooks but is brittle or expensive in prod.
Latency and cost creep as traffic grows; no clear guardrails.
Lack of observability: hard to trace failures or measure model quality.
Model updates feel risky; no safe A/B or shadow deployment path.
On-call burden is high because incidents are hard to debug.
Prototype works in notebooks but is brittle or expensive in prod.
Latency and cost creep as traffic grows; no clear guardrails.
Lack of observability: hard to trace failures or measure model quality.
Model updates feel risky; no safe A/B or shadow deployment path.
On-call burden is high because incidents are hard to debug.
Real production challenges, told as a clear problem, a short approach, and the impact that mattered. Some details are generalised where client work is confidential.
Problem
Escalations and latency were rising together, with no visibility into which paths were breaking their latency targets.
Approach
I added request-level tracing, dynamic batching, and dual-layer caching so latency stayed within target during traffic bursts.
Impact
Latency held within target through traffic spikes
Inference cost reduced through batching and caching
On-call load eased as failures became traceable
Cache reuse cut redundant model calls
Key Learning
Observability first: you can't optimise what you can't measure. Request-level traces exposed batching opportunities that notebook experiments had hidden.
Problem
A team needed a fast, practical prototype. We delivered a working MVP that matched expectations.
Approach
I built an end-to-end vision-to-recipe flow: detect ingredients, store state, generate recipes with expiry rules.
Impact
Key Learning
Consumer-facing machine learning requires graceful degradation. When the vision model is uncertain, surface that uncertainty to users rather than making confident wrong suggestions.
Problem
Traffic shifts quietly reduced quality. Users only noticed once outcomes started slipping.
Approach
I built sliding-window drift checks against training baselines, so alerts surface severity before user-visible impact.
Impact
Key Learning
Drift monitoring is cheap insurance. The cost of running statistical tests is negligible compared to the cost of silent model degradation.
Problem
A team needed a fast, practical prototype. We delivered a working MVP that matched expectations.
Approach
I built an end-to-end vision-to-recipe flow: detect ingredients, store state, generate recipes with expiry rules.
Impact
Key Learning
Consumer-facing machine learning requires graceful degradation. When the vision model is uncertain, surface that uncertainty to users rather than making confident wrong suggestions.
Problem
Traffic shifts quietly reduced quality. Users only noticed once outcomes started slipping.
Approach
I built sliding-window drift checks against training baselines, so alerts surface severity before user-visible impact.
Impact
Key Learning
Drift monitoring is cheap insurance. The cost of running statistical tests is negligible compared to the cost of silent model degradation.
Machine Learning Systems Engineer
Architected an LLM serving pipeline engineered for responsive, reliable user-facing inference
Delivered production handwriting-recognition and document-intelligence work for a confidential client — fine-tuning open-source transformer models with human-in-the-loop validation in a high-volume operational workflow. Client, methodology and results remain confidential.
Implemented cost optimisation through quantisation and batching strategies
Created monitoring that detects data drift before it reaches users
Machine Learning Engineer (Contract)
Built AI Fridge Assistant prototype combining computer vision with recipe generation
Developed camera-based food inventory tracking with LLM-powered recipe suggestions
Delivered practical vision model application for everyday consumer problems
Machine Learning Systems Engineer
Architected an LLM serving pipeline engineered for responsive, reliable user-facing inference
Delivered production handwriting-recognition and document-intelligence work for a confidential client — fine-tuning open-source transformer models with human-in-the-loop validation in a high-volume operational workflow. Client, methodology and results remain confidential.
Implemented cost optimisation through quantisation and batching strategies
Created monitoring that detects data drift before it reaches users
Machine Learning Engineer (Contract)
Built AI Fridge Assistant prototype combining computer vision with recipe generation
Developed camera-based food inventory tracking with LLM-powered recipe suggestions
Delivered practical vision model application for everyday consumer problems
Most client work is confidential. For deeper case studies and to discuss your infrastructure, connect on LinkedIn.
Connect on LinkedIn->Learn more about my technical expertise or background.