2016 — 2020
BEng Mechanical Engineering, 2:1
University of Bristol
Covered systems & control, mechatronics, and finite element analysis — then earned a First on my final-year project, applying MATLAB simulations and neural networks to experimental research.
Jan — Apr 2021
Software Development Bootcamp
Nology
12-week intensive covering JavaScript, React, and software engineering fundamentals — agile workflows, best practices, and real client projects.
Aug 2021 — Dec 2022
Junior Front-End Developer
Bendi · Remote/London
Led front-end on an MVP reporting app for Shopify merchants, then built a retailer survey app solo — shipping with React, Next.js, GraphQL, and AWS (Amplify, Cognito, Lambda).
Jun 2022 — Dec 2022
Digital Trainer
Future Coders SE · Remote
Built a full web development course — projects, worksheets, and resources — then delivered hands-on training, reviewing code and coaching learners individually and in small groups.
May 2023 — Apr 2026
Front-End Developer
Radii Devices · Hybrid/Bristol
Sole front-end developer for a start-up building a browser-based CAD platform with Three.js — owning architecture, auth, and file versioning, then continuing as freelance lead through code review and deployment.
memaday
A group photo-sharing app: each group gets one randomly-selected photo per day. Members view it and comment. When the next day's photo is selected, the previous one — image and comments — is permanently deleted, everywhere. Claude Code-assisted project built for web and mobile with a shared backend API for authentication and data handling.
Test Project Three
Placeholder project with a longer description, deliberately wordy so it runs past a single line and exercises the tile's overflow and expand behavior the same way memaday's does.
Test Project Four
Another placeholder, with a long stack and a deliberately wordy description, so more than one tile in the grid can be overflowing and expandable at the same time — this one lets the click-to-expand interaction be tested project after project, in different combinations and orders, instead of only ever having memaday around to click. The stack below is padded out well past what it would realistically need, purely to guarantee this card clips at its normal size the same way memaday's does.
Test Project Five
A fifth placeholder, also deliberately overflowing, with its own long list of technologies — so the grid has to keep multiple pinned and expanded tiles from ever colliding with each other or with the rest of the grid as they're clicked through one at a time, in different orders and starting from different positions in the layout. Long enough on its own, before even counting the stack list below, to clip at the card's normal size.
Get In Touch
If you have a project in mind or like my work then give us a shout!