Professional work
Fruugo
At Fruugo, I led the architecture and implementation of a migration
from jQuery to React and TypeScript across more than 20 live frontend
applications. I built the shared micro-frontend framework and
dependency model, reducing JavaScript delivered to users while
allowing applications to modernise incrementally.
I architected and built the shared component library and remain its
leading contributor. I also established automated testing and
standardised build and release tooling. I work with product, design
and backend teams to improve internationalisation, accessibility and
performance, and support the platform in production.
LinkedIn↗
Personal projects
Household dashboard / React & TypeScript
Home Dashboard
A glanceable household dashboard built to run on old tablet, bringing
together weather, calendars, school schedules, bin collections and
birthdays.
A Fastify API normalises several providers and caches their responses
in SQLite, keeping the display useful even when a source is
unavailable.
Web application / React & TypeScript
Tabletop Atlas
Driven by my love of tabletop gaming, I’m building a concept
application for discovering local tabletop venues, bringing a
specialist dataset into a searchable guide with filters and an
interactive map.
Built with Next.js, React, TypeScript, Tailwind CSS and MapLibre. The
project explores how a small, focused dataset can be more useful than
generalised ones like Google Maps, and how clear source attribution
can improve the trustworthiness of information.
Browser game / JS13kGames 2019
Entombed
I developed this first-person dungeon crawler for JS13kGames 2019,
within the competition’s 13 KB size limit.
I built a custom raycasting engine, procedural maze generation,
pathfinding and enemy AI, with synthesised sound using the Web Audio
API.