Homepage

Software Engineer
I'm a Software Engineer based in Bristol, with over 7 years building production systems across defence, digital health, and ecommerce. I own features end-to-end — from discovery and prototyping through to production delivery — working closely with product managers and stakeholders to turn messy, complex requirements into software that scales and ships reliably.
Projects

Tennis Scorer
A tennis tournament manager that generates seeded knockout, round-robin and hybrid draws. Players get a personal link to submit their own scores, which are validated against the chosen format (standard, Fast4 or match tiebreak) before winners advance automatically.

Meal Planner
A recipe collection app with AI-powered scraping. Paste any recipe URL or Instagram/Facebook Reel to auto-extract ingredients, then select multiple recipes to generate a merged, unit-normalised shopping list.

PhotoMapper
A geolocation photo-sharing app. Upload a photo and GPS coordinates are extracted from EXIF metadata and pinned to an interactive MapLibre GL map. Browse photos on the map or in a scrollable feed.
My Skills
TypeScript
Primary language at The RAC, where I used it to build and operate high-traffic Next.js ecommerce applications and own the end-to-end delivery of a B2B fleet platform — covering component architecture, state management, and API integration patterns.
Python
Used for my final year university project — a machine-learning system combining Python and computer vision to detect speeding vehicles and analyse real-world traffic data. Also used for scripting and data processing tasks.
SQL
Used at Forth to back a B2B analytics platform modelling patient testing and results workflows, and to power a full-stack payments and subscription system with Stripe and Klarna. Comfortable with data modelling, query optimisation, and schema design.
React
Used across all three roles. Built React dashboards at BAE Systems, TypeScript health data frontends at Forth, and high-traffic SSR/SSG ecommerce and B2B applications at The RAC. Strong understanding of component architecture, state management, and performance.
Next.js
Primary framework at The RAC. Delivered optimised SSR and SSG ecommerce applications handling millions of annual requests, and owned the end-to-end architecture of a B2B fleet platform including routing, data fetching, and API integration patterns.
Node.js
Used at BAE Systems to build data aggregation services integrating multiple operational data sources for Royal Navy fleet dashboards, and across subsequent roles for backend services, API integrations, and tooling.
REST APIs
Core to every role — integrating with enterprise pricing and data services at The RAC, SQL-backed backend services at Forth, and operational data sources at BAE Systems. Experienced designing and consuming RESTful APIs across the full stack.
AWS
Used at Forth to maintain and debug production infrastructure across EC2, S3, and Lightsail — supporting deployments, environment configuration, and production issue resolution on health data platforms.
Kubernetes
Production environment at The RAC. Act as the go-to engineer for full-stack incidents spanning Kubernetes-based microservices, using k9s to inspect pods, trace failures, and resolve issues across distributed systems.
Azure DevOps
Used at The RAC to migrate legacy applications to a modern CI/CD pipeline using trunk-based development, automated builds, and deployments — improving release cadence and reducing deployment risk across the team.
CI/CD
Implemented and maintained CI/CD pipelines at The RAC using Azure DevOps with trunk-based development, automated testing, and deployment workflows. Focused on reducing deployment risk and improving delivery speed.
Grafana
Used daily at The RAC for production observability — analysing logs, tracking service health, and diagnosing incidents across distributed systems. A key tool during on-call and incident response alongside Azure Application Insights.
Azure Application Insights
Used at The RAC alongside Grafana to trace failures, analyse telemetry, and identify root causes during production incidents across frontend applications and Kubernetes microservices.
Stripe
Integrated at Forth to build a full-stack payments and subscription system — implementing payment flows, subscription lifecycle management, and webhook handling using PHP Slim and SQL.
Klarna
Integrated alongside Stripe at Forth as an alternative payment method within the subscription and checkout system, handling payment flows and validation across the full stack.
ContentStack CMS
Used at The RAC as the headless CMS powering content across ecommerce and B2B platforms, integrating with Next.js for content-driven pages and dynamic components.
JavaScript
Foundation of my early career at BAE Systems, where I built Node.js services and React dashboards in vanilla JS before transitioning to TypeScript. Solid understanding of the language underpins all TypeScript work.
Copilot
Used in day-to-day development at The RAC to accelerate delivery — particularly useful for boilerplate, test generation, and code review. Comfortable integrating AI tooling into a professional engineering workflow.

Active Lifestyle
Away from the desk, I'm a dedicated athlete. Tennis is a major part of my life — I compete regularly in Bristol & Avon leagues and love the competitive challenge of the sport. Beyond tennis, I've embraced a multi-sport approach to fitness. I'm a keen cyclist and have recently taken up running, with a current goal of completing the Bristol 10k. Balancing these activities keeps me sharp and energized.

Travel & Exploration
I'm passionate about exploring new places and seeking out adventurous experiences. I started with a scooter trip around Taiwan, which was an incredible introduction to independent travel — vibrant cities, stunning landscapes, and incredible food. Since then, I've road-tripped along the Croatian coast and through the Balkans, soaking in the history and coastal beauty. Each trip adds a new perspective and keeps me hungry for the next destination.

Background
I'm a Bristol local, having lived here for the past 5 years, though I'm originally from near Exeter. That Southwest connection remains strong — I regularly head back for beach trips and hikes on Dartmoor, which has become my go-to escape for fresh air and nature. Academically, I studied at Portsmouth University and graduated with a 2:1. I started my career with a full-time role at BAE Systems, where I'm currently completing a placement year that's given me valuable industry experience.

The Important Stuff
I've been with my girlfriend for a year and a half and we recently moved in together in Bristol, along with our two cats Olive and Ivy. We spend a lot of time trying new restaurants — Rocksalt and Mangosteen are our current favourites — and sharing a bottle of wine. We're both running the Bristol 10k together, and when we're not training you'll likely find us on the sofa watching MAFS.