ChromaForge
A PBR texture pipeline tool with AI integration, designed to make material creation faster, smoother and more user-friendly.
Portfolio
Web developer building clean, creative projects with Flask, HTMX, Nuxt, Vue and a love of polished UI.
A PBR texture pipeline tool with AI integration, designed to make material creation faster, smoother and more user-friendly.
A fast note-sharing web app focused on simple publishing and clean writing.
A custom-built gaming platform for tracking playthroughs, reviews and automatically generating game pages from live data.
A custom-built e-commerce platform with a full admin backend, product management and flexible shipping logic.
A voxel-based planetary engine built in C++ with DirectX 12, featuring procedural spherical worlds, chunk streaming and real-time terrain deformation.
An isometric ARPG built in C++ with custom rendering, terrain deformation, procedural level generation and combat mechanics.
A Rust + Bevy prototype using real ocean heightmap data to simulate large-scale water environments.
A full-stack publishing prototype built with React, Express and PostgreSQL, exploring user-created pages and low-friction content sharing.
An early Python-based tool for generating PBR texture maps, created as a precursor to ChromaForge.
A custom React video player with a YouTube-inspired interface and dynamic ambient box-shadows driven by sampled colours from the video edges.
A React and Three.js experiment that generates a rounded voxel sphere, renders only visible faces, and merges geometry for more efficient real-time display.
An early full-stack web project integrating a retail EPOS system with a dynamic ASP backend.
I build web apps, game engines, and the systems that run them.
I’m a developer with a hands-on approach to building things, whether that’s web applications, game engines, or the hardware they run on. This portfolio itself is my first project built with Nuxt and Vue, as part of expanding into more modern frontend tooling.
A lot of my work focuses on building real, usable systems. Projects like ChromaForge and JotSpot are designed with user experience in mind, combining clean interfaces with practical functionality. At the same time, I enjoy tackling more technical challenges, such as developing a planetary voxel engine in C++ with DirectX 12, exploring procedural generation, chunk streaming and real-time terrain deformation.
I also run my own small server where I host and manage my projects, giving me hands-on experience with deployment, Docker, reverse proxies and maintaining live services. That practical side of things feeds directly back into my development work, helping me better understand performance, reliability and how applications behave in real environments.
I’m also comfortable working beyond software. I build and maintain my own systems, handle hardware upgrades, and troubleshoot performance issues when things don’t behave as expected. That practical experience feeds back into my development work, giving me a better understanding of performance, optimisation and how software interacts with the hardware it runs on.
Outside of development, I’ve been playing English pool for many years and still play regularly. It’s something I approach in much the same way as programming — thinking a few steps ahead, balancing risk and control, and constantly refining technique over time.
Born in 1984, I’ve been around long enough to see technology change significantly, from early web development to modern frameworks and real-time rendering. That perspective has shaped how I work today: I’m always interested in new tools and ideas, but I also value understanding the fundamentals behind them.