> About_
I'm a Frontend Engineer with 5 years of experience in HTML, CSS (SCSS & Tailwind), JavaScript, and TypeScript.
Outside of work, I'm a Game Programmer. I've been creating games in Unity and C# for the past two years, and built this site to showcase my game projects. I am currently learning to make web games using Defold and Lua.
If I'm not making games, I'm probably playing them. Some of my favourites are Pokemon, Dragon Quest, Celeste and Terraria. When away from the computer I'm usually playing 5 a-side football or at the gym.
> Skills_
Languages
Engines
Tools
> Projects_
Dungeonball

Dungeonball
Implemented the Observer pattern using C# events: player actions broadcast events that the UI subscribes to for updates. Used the Strategy pattern to determine when a path should be recalculated, separating the logic into distinct classes.
ENGINE: Unity, C#
>Observer Pattern
>Strategy Pattern
Virtual Pet

Virtual Pet
Utilised the Meta XR SDK's hand tracking capabilities to interact with the augmented pet and toys. Pet behaviour is driven by a state machine that reacts dynamically to player actions.
ENGINE: Unity, C#, Meta XR SDK
>State Machine AI
>Augmented Reality
>Meta Quest
>Team Collaboration
Sweet Dreams

Sweet Dreams
Implemented coyote time and jump buffering using timers. The jump executes if input occurred within a set timeframe before touching the ground or leaving a platform. Made in 48 hours as part of a team for the 2025 Global Game Jam.
ENGINE: Unity, C#
>Character Controller
>Jump Physics
>Team Collaboration
>48 hours
> More Projects_

Cosmic Cultivator
Built a timed Wave Spawning System using Object Pooling to minimise runtime allocations. Used an editor-exposed Animation Curve for spawn rates and movement speeds, decoupling logic and data for scalable difficulty tuning.
ENGINE: Unity, C#
>Object Pooling
>Wave Spawning

City Drift
Created a drifting mechanic by taking Rigidbody's lateral velocity and applying a counter force to control sliding. Reduced counter force on player input letting the vehicle slide and creating a controlled oversteer.
ENGINE: Unity, C#
>Vehicle Physics
>Drifting Mechanic

Dragon Quest MV
Fan-made game using RPG Maker MV, enhancing the engine's capabilities by overhauling the item management system to support individual character inventories. Designed and implemented skill-tree and quest systems that dynamically load data from JSON files.
ENGINE: RPG Maker MV, JavaScript
>Game Systems
>Existing Codebase