Senior Software Engineer | 2025-2026
- Built an official NFT market place for the cryptocurrency Zano utilising wallet RPC APIs with an ExpressJS backend API and NextJS frontend.
- Implemented a robust server side swap mechanism to take the place of a feature in development by the core wallet team, saving a lot of time.
- Built administration panel that you can login to with your wallet (as an administrator) to manipulate site settings.
- Self managed brownfield development of backend and frontend from provided Figma designs, a simple set of requirements and a previous developers codebase.
- Implemented reusable components, a reusable blockchain based event handler system and a transaction pooling system to maintain efficiency.
Senior Software Engineer | 2019-2025
Owens Corning (F500) - Full Time Contractor
- Developed a fully bespoke data-focused framework and front-end "everything CMS" in React and later also Next.js that allowed the company to absorb a majority of their web presence into manageable content over time, saving a lot of money and time.
- Created a documented themeable user interface framework and fully featured component library from scratch with the goal of fully utilizing Next.js' optimizations. This completely removed layout shift and sped up page load by 6-8x.
- Engineered a solution in Rails, bridging product management systems to provide an interface and syncing process for brand-related resources.
- Built a blazer report modification user interface editor that allowed a user to create a set of fields with different interfaces to be used within the SQL of a blazer report.
Embedded Software Engineer | 2019
Midea (F500) - Contractor
- Developed a fully featured scheduling and control library in C++ for a microcontroller in a prototype dishwasher.
- Fully documented in a user-friendly way and created a shorthand system utilizing overloaded operators to easily control each part of the cycle.
- Fully ensured the product’s usability by the team by building a testing workbench with my own microcontroller on a breadboard and extending my scope to parts of the code that weren’t initially in scope.
- Maintained solid communication with engineers and developers at Midea to ensure everything worked well by their strict deadline and in time for a trade show to demonstrate the prototype.
Software Engineer | 2019
Jet2 (F500) - Contractor
- Built an app to work as an interface for an installation that toured around many major cities in the UK, picking up hundreds of videos and registrations to the Party Plane competition as it went (all over cellular internet, too!).
- Buffered API requests to account for send failures with backups to keep things robust on the road with patchy internet.
- Built in a way to change the camera settings through a user interface. This allowed the exposure bias, manual exposure, and RGB tint to be tweaked on-site to ensure a perfect image output and avoid unusable content.
- I was also called in to do some web work to facilitate registering the (uploaded on the fly) YouTube videos with Jet2's servers, saving the team a lot of hassle at a mission-critical time.
Software Engineer | 2016-2018
- Worked on a web app using a bespoke PHP MVC and Docker to secure a back-end API and a front end with a user system using 2FA login, internal messaging system, and many forms.
- Worked on OpenGL macOS desktop app implementation of their IP remote team management and communications software, implementing an undocumented beta version C AV streaming SDK into AVFoundation I/O.
- Built native iOS and Android scanning apps to scan a ticket and check its code against an API—which I also built—that was used to scan thousands of tickets at a festival. I made apps for both platforms in one day.
- Developed a "scarf builder" UI module for RedBull that allowed to add, remove, drag and drop, resize and rotate "stickers" onto a scarf as well as pick a backdrop. This would then be rendered into a canvas and be saveable as a PNG.
- Composed a radio popup for Pearl Jam that tapped into their already running Icecast and streamed it through an HTML5 audio tag.
Software Engineer | 2015-2016
- Maintained and deployed new instances of their web app for management in the manufacturing industry. A lot of work on new instances was done to build reports output—I took the initiative and created a system to do this automatically.
- Worked from beginning to end, ensuring the app's new instances worked to each client's unique specifications through interpreting and developing those specifications into Rails back- and front-end architecture.
- Picked up a proficiency for Ruby, and while I do prefer Go, I currently have a soft spot for it.
Software Engineer | 2013-2015
- Worked in-house at Playne Design, from simple dynamic business websites with a CMS to a fully-fledged social media platform for a London Council.
- Picked up a lot of my PHP experience here, as many projects were making WordPress become far more than just a blogging tool.
- Used Python and Ruby on Rails to build an in-house server infrastructure to speed up internal processes like testing HTML emails. I also used Git hooks to automate deployment on a local staging server to smooth out their web development workflow.
- Worked side by side with a designer to ensure every element of the finished product was up to standard. I still employ this methodology in my larger freelance contracts to this day.
PERSONAL PROJECT
Bismuth – Programming Language and Bytecode VM
A completely custom dynamically typed programming language and virtual machine stack built from scratch in C++. It's bindable to any C++ project and extendable through dynamic libraries. This project is a lot of fun to work on, building experimental features I'd like to see in a language and optimizing the VM to be faster than Python!
C++
Language Design
Interpreter Development
Software Architecture
Verbose mode fully details each step of interpretation from scanning tokens to abstract syntax tree to a flat list of bytecode instructions.
Here's an operational example of the VM loading a dynamic library and binding an API to the Bismuth language.
PERSONAL PROJECT
Automata – DSL, Renderer and Lab UI for Cellular Automata
Automata is an app that houses a domain-specific language, editable with custom React UI, for creating cellular automata effects (like John Conway's Game of Life). The DSL compiles down directly into GLSL, which is then used to render the effect on a canvas preview.
ReactJS
NodeJS
User Interface
Software Architecture
Language Design
Interpreter Development
JavaScript
GLSL
Frontend
CSS
The full Automata Lab UI with DSL editor, autocomplete, presets and real time WebGL preview.
PERSONAL PROJECT
Moonks – Custom Multiplatform C++ Game Engine
Moonks is a psychedelic space adventure with a custom C++ game engine allowing for smooth animations, Box2D physics, dynamic audio using PureData and simple but efficient bitmap and shader APIs for fun with feedback visuals like cellular automata.
C++
Software Architecture
Mac OS
Linux
Windows
User Interface
GLSL
Moonks combines rich handmade monochromatic pixel art, crunchy techno audio vibes and experimental dynamic visuals.
Pseudo-3D physics and generative cellular automata explosion visuals combine well!
A robust and easy to use entity system allows for complex character interactions, animations and physics.
The world is full of interactables and opportunities for silliness.
PERSONAL PROJECT
conv.li – A Fun Project to Convert Everything!
Creating a website that attempts to convert anything into anything else was a very fun project. The development culminated in me creating a domain-specific language that is written in the URL, fully supporting variables, functions, and expressions; it successfully calculates Fibonacci!
ReactJS
NextJS
JavaScript
Software Architecture
User Interface
Full-stack
Backend
Frontend
CSS
Language Design
Interpreter Development


There's a URL based scripting language! It supports variables, functions and you can insert conversions from the rest of the site.

Here it is generating 100 Fibonacci numbers!
