I'm a Gameplay & AI Systems Programmer specialising in C++ and Python.
I work close to the engine building gameplay systems, AI behaviour architectures, backend platforms, and scalable technical foundations.
C++ is where I build real-time gameplay logic and AI systems. Python is where I design backend architecture, automation, and AI-integrated tools.
A commercially released Unreal Engine 5 title.
I designed and implemented modular enemy AI systems using Unreal Engine 5 and Behaviour Trees.
The focus was creating an engaging and replayable game which could be expanded upon easily in the future.
I also composed and integrated the game's soundtrack and dynamic sound systems within Unreal.
You can play it here by the way!
A full-stack AI-assisted solution architecture system built with Python, Flask, JavaScript, and Docker.
This project focused on building a scalable system.
A game made in Unreal Engine 5 for the Brackeys Game Jam 2026.1 which set a time limit of one week for the game's development.
The theme was "Strange Places".
My role was to develop the core systems that the game would use in a way which was well documented and intuitive for the level designers to work with. The main system being the temperature system which would utilise volumes as 'rooms' to act as a way to allow heat to circulate through an area (and alert the monster). This system was intertwined with the player as well as the player would freeze to death if they are unable to keep warm.
I also was in charge of the monster's AI which I utilised Behaviour Trees, Blueprints and C++ to allow the monster to 'stalk' the player by prioritising areas with higher temperatures in its wandering state. This was a design choice on my part as the monster would follow residual temperatures the player leaves behind from previously used/currently active campfires. I also set up a system where the rooms would broadcast to the monster via a dynamic multicast delegate which would inform the monster of the location of said room when it exceeded a specified temperature. This would cause the monster to enter an 'Alert' state where it would roar sprint to that room, allowing for a way for the player to get caught if they are being reckless or as a method of luring the monster.
I was also responsible for the soundtrack and sound effects.
While there were hardships along the way, I decided to complete the project until the end of the Game Jam.
Around the end of the Game Jam, we decided to lean into a more comedic tone.
It directly influenced how I approached later projects with stronger structure and cleaner system boundaries.