Projects

Loose JuiceLoose JuiceLoose JuiceLoose Juice

Loose Juice (2026)

an online physics-based platformer

Unity Unity
C#
Networking Networking
Tools Tools
Audio/DSP Audio/DSP
UI/UX UI/UX

Developed in Unity 6 with team Finch Outside the Box at Abertay University.
Programmer in a team of 7 from concept to release.

Native voice chat pipeline

Designed and implemented our custom voice chat solution

  • Heavily optimized and profiled hot path with zero allocations & minimal GC pressure
  • Built managed interop around SpeexDSP and RNNoise for resampling and noise suppression
  • Integrated Opus codec for efficient network transfer
  • Custom thread-safe ring buffer implementation for sample/frame processing
  • Adaptive jitter buffer and packet loss concealment to reduce audio artifacts

Networked gameplay systems

Owned a number of core features and systems

  • Synchronized co-op vehicle physics, obstacle interactions, system states
  • Seamless join-in-progress support with state machines
  • Server-authoritative logic checks & events to prevent cheating

Third-party vendor SDK integrations

Epic Online Services SDK

  • Seamless peer-to-peer networking over NAT relay via EOS P2P Interface
  • Lobby browsing, joining, and creation flow via EOS Sessions Interface

Discord Game SDK

  • Branded rich presence tracking player progress, game state, and player count

Audiokinetic Wwise

  • Integrated Wwise audio middleware with game systems for dynamic effects, music

Internal asset pipeline & workflow tooling

Built Unity editor tools to streamline content creation and iteration

  • Automated integration of new character skins; generating Unity assets, UI icons, and texture metadata
  • Developed local network testing mode to reduce friction of developing multiplayer content

UI/UX, user flows, and design language

Designed and implemented our UI/UX, design language, and user flows, working closely with artists

  • Designed UI flows, including main menu, lobby browser, pause menu, settings menu, and in-game HUD
  • Implemented UI motion design in C# with modifiable Unity components
  • Spearheaded our visual design language and brand alongside art team

Beyond my core responsibilities, I also led our brand voice, messaging, and release management, designing release graphics, and writing release notes.

Our team used JIRA and Confluence extensively for project tracking, and practiced agile methodologies.

BLUESHIFT: CommandBLUESHIFT: CommandBLUESHIFT: Command

BLUESHIFT: Command (2025)

a space combat game with a custom engine for PlayStation 5

PS5 PS5
C++
Networking Networking
Tools Tools
UI/UX UI/UX
AI AI

Developed in an in-house engine with team Overscope Inc. at Abertay University.
Programmer in a team of 4 from concept to completion.

This project's codebase is heavily integrated with the PlayStation 5 SDK, and cannot be shared.

Project features

Worked in a performance-focused C++ codebase encompassing:

  • Data-oriented ECS architecture
  • Online multiplayer with rollback netcode
  • Multi-threaded physics integration with Jolt
  • Custom render pipeline with post-processing and lighting
  • Cross-platform OS abstraction layer for Windows and PS5

Performance and optimization

Continued effort to ensure stable frame times on PS5 architecture

  • Resolved performance bottlenecks using PS5 profiling tools to maintain stable 60fps
  • Empirically tweaked PS5 threading and memory configuration
  • Cut ~100ms of overhead from repeated asset loads by caching filesystem methods
  • Increased max stable entity count from ~150 to thousands by refactoring our broadphase layers and integrating multi-threading into the engine loop

Gameplay, AI, and physics

Implemented core gameplay features and systems

  • Procedural map generation and game initialization
  • Core player movement and interaction systems
  • AI state machine with pathfinding, collision avoidance, and task queue
  • Virtual camera system for seamless view mode transitions
  • Extended physics system with transform interpolation

UI/UX

  • Built custom node graph and branded design system on top of ImGui
  • Built callback-based PS5 IME wrapper for text input

Build system

  • Simplified our build processes to resolve flaky cross-platform builds
  • Cut PS5 iteration times from several minutes to seconds by refactoring asset conversion to avoid unnecessary work
Overwatch 2 Data TrackerOverwatch 2 Data Tracker

Overwatch 2 Data Tracker (2025)

a web app for tracking historical Overwatch 2 game data

Tools Tools
Web Web
PostgreSQL PostgreSQL
TypeScript TypeScript
Node.js Node.js
Svelte Svelte
UI/UX UI/UX

A data visualization app providing players with the tools to analyze and compare data direct from Blizzard. Maintained throughout Overwatch 2 Season 18, building a searchable historical dataset of millions of rows.

Backend data collection

  • Bun (like Node.js) service running a cron job to periodically process snapshots of Blizzard's realtime API
  • Runs as a systemd service on a Linux machine to minimize downtime
  • Saves to a PostgreSQL database running locally via Docker
  • Both app and backend interface with database using Drizzle ORM

Frontend web-app

  • Responsive full-stack SvelteKit app
  • Custom filterable charts using Chart.js
  • REST API with filters for data exploration
  • Reactive filtering and search, no page reloads
College ProjectsCollege ProjectsCollege ProjectsCollege Projects

College Projects (2021–2023)

a collection of solo game projects built in Unity

Unity Unity
C#
Networking Networking
UI/UX UI/UX
AI AI

From 2021 to 2023, I built several solo game projects in Unity at Wakefield College.

freeroam.

an online multiplayer sandbox game

  • Peer-to-peer networking, lobby browser system
  • Networked gameplay systems including PvP combat, vehicle physics, and customizable characters, weapons, and vehicles
  • Automated tools for adding new vehicles, weapons, attachments, and skins

Revolt

a magical horde combat game

  • Reduced spawning/destruction overhead with object pooling system for projectiles and entities
  • First-class cross-platform gamepad support
  • Data-driven spell and ability system

Endovelicus

a 2D strategy roguelike game

  • Hybrid procedural noise & algorithmic map generation
  • Extensible ability system built on C# reflection
  • Async tasks for unit behaviour handling

that's all for now!

🐈