
Tyre Tracks
Utility app for tracking tyre tread depth across multiple vehicles. Features intelligent wear predictions, visual degradation graphs, replacement notifications, and iCloud sync to help drivers plan maintenance and stay safe on the road.
I'm a full-stack software engineer with deep expertise across mobile and web. Professionally I've shipped apps spanning IoT device control at Dyson and social experiences at Hyper SQ, alongside a growing portfolio of my own independent projects.
On the mobile side I specialise in Swift and SwiftUI, building native iOS apps with features like HealthKit integration, real-time data streaming, and offline-first architectures. On the web I work with TypeScript, React, Next.js, and Node.js — from server-rendered frontends to backend APIs and database design. I enjoy owning the full picture, from infrastructure to pixel-perfect UI.
Tyre Tracks is my flagship personal project — a cross-platform tyre tread depth tracker available on iOS, Android, and macOS that uses intelligent wear analysis to predict replacement dates and keep drivers safe. It's been a rewarding challenge combining data visualisation, predictive algorithms, and a clean multi-platform architecture.
I also built Ski Scotland Companion, bringing real-time resort data, live webcams, and interactive piste maps to every Scottish ski resort, and DrinkCounter, a health-focused alcohol tracker with Live Activities and HealthKit integration. Each app is taken from concept and design through to store release and ongoing iteration.

Utility app for tracking tyre tread depth across multiple vehicles. Features intelligent wear predictions, visual degradation graphs, replacement notifications, and iCloud sync to help drivers plan maintenance and stay safe on the road.

Health-focused alcohol tracking app designed to help users monitor their drinking habits. Features real-time unit tracking, health limit warnings, Live Activities support, and privacy-first CloudKit sync across devices.

Travel companion app helping users discover and explore destinations worldwide. Features offline maps, travel guides, and itinerary planning with seamless synchronization across devices.

Find and book nearby escape rooms while tracking your completions. Features venue discovery, direct booking, completion logging, competitive leaderboards, and achievement awards to showcase your escape room expertise.
Smart property search platform that revolutionizes house hunting. Features advanced filtering, real-time notifications, property comparison tools, and integration with major UK property portals.

Essential companion app for skiing and snowboarding in the Scottish Highlands. Features live resort data, interactive piste maps, smart notifications for resort conditions, and live webcams.

Transform fitness into a team sport with Baton – where every run counts toward something bigger. Features group challenges, relay-style notifications, real-time progress tracking, and HealthKit integration.
Collaboration with Joe Williams
Unofficial Audi Connect interface written in Swift. Provides seamless integration with Audi vehicles for remote monitoring and control features.
Swift-based interface for the Volvo Connected Cars API. Provides integration with Volvo vehicles for remote monitoring and control capabilities.
Swift library to access the Tesla API. Forked and contributed to this open source project for communicating with Tesla vehicles.
An unofficial Porsche Connect API library written in Swift. Forked and contributed to this project for integrating with Porsche connected vehicle services.

Building a social challenge platform at Hyper that brings people together through shared experiences. Creating engaging features for daily challenges, moment capture, and social interactions that make life more memorable.

Developed and maintained the MyDyson iOS application, enabling users to control and monitor their Dyson devices. Implemented IoT connectivity, real-time device management, and intuitive UI/UX.
All logos and trademarks are property of their respective owners.
Interested in working together, have a question about one of my projects, or just want to say hello? I'd love to hear from you.