Homepage

Profile photo

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.

7+Years experience
Multiple IndustriesDefence, Digital Health, Ecommerce, Motor Breakdown
TypeScript · React · Node · Python · C#Core languages & frameworks
10+Business critical apps developed to production

Projects

Tennis Scorer

Tennis Scorer

Next.jsTypeScriptPrismaPostgreSQLAuth.jsResend

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

Meal Planner

Next.jsTypeScriptSupabaseGoogle GeminiAICheerio

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

PhotoMapper

Next.jsTypeScriptMapLibre GLSupabaseRedux ToolkitEXIF

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.