I've always loved the bridge between a design concept and how a game actually feels in your hands. To me, games are the ultimate sandbox for testing ideas.
Beyond traditional gameplay, I have a deep curiosity for artificial intelligence. I've been using the Unity ML-Agents toolkit since its early beta days. What fascinates me most is the side of AI that researchers often skip: the design of the environment itself. I enjoy figuring out the custom sensors, action spaces, and reward systems needed to make an agent behave the way a designer intended. To build a solid foundation, I completed the Udacity Deep Reinforcement Learning Nanodegree, and I still spend much of my spare time reading research papers, studying the underlying math, and testing ideas — like volunteering to develop a learning-based AI for the RTS game Sanctuary.
It started in high school, hosting heavily modded servers for Team Fortress 2, Left 4 Dead 2, Killing Floor 2 and Minecraft. Digging through the files, figuring out how it all worked and watching a small community form around my servers is what got me hooked. I took a detour through a diploma in hospitality management — which taught me how to work with people, something I still lean on every day — and then found my way back to software through Unreal Engine, at first as a hobby, then as the thing I wanted to do professionally.
I enrolled in the Game Design and Development program at Centennial College in Toronto and made it a full-time job. The program covered every part of Unity production, and I put my weight behind C# and gameplay programming. Game jams and team projects filled in the practical half: scoping, iterating, and shipping something playable on a deadline.
Today, I'm looking for a Unity role—whether in gameplay, tools, or agent AI—in Toronto or remote. I'm always happy to talk about my projects, the math behind deep learning, or server modding.
(For the record, I've optimized this page down to 18 "I"s—a major performance improvement over my previous drafts. I hope it made for a smoother read!)
Unity gameplay and tools first, then reinforcement learning.
A sandbox game where players raise and train their own AI creatures using deep reinforcement learning — every "Bot" is a live neural network that learns from the environments, rewards, and demonstrations the player sets up. The project meant turning research-grade RL into a robust gameplay feature: training has to converge under arbitrary, sometimes adversarial player setups, and inference has to stay smooth during play.
A real-time generative story engine (previously known as RobotsMakeTV), blending machine learning with interactive narrative to produce stories that respond and evolve as the audience engages with them.
A turn-based board game with a chess-RPG hybrid ruleset, featuring an AI opponent trained from scratch using reinforcement learning and self-play — the same family of techniques behind AlphaZero, applied to a custom ruleset where no prior heuristics existed.
A research project tackling a fundamental inefficiency in real-time game AI: agents forced to make a decision on every single frame, whether or not anything meaningful has changed. I designed and built a custom delayed-action system that lets agents decide both what to do and when their next decision should happen — cutting inference calls and producing more deliberate, game-like behaviour in continuous-time environments.
A training infrastructure layer for Unity ML-Agents built around Population Based Training — evolving hyperparameters during training rather than fixing them upfront. Beyond PBT, the tooling handles the day-to-day reality of training agents at scale: spawning parallel environments, switching the active camera between agents, controlling timescale, surfacing per-agent debug information, and pushing custom metrics to TensorBoard live during training.
A Unity platformer built as a testbed for custom perception systems in reinforcement learning. The headline contribution: a sensor that parses surrounding game objects into a variable-length vector processed by an attention module — letting the agent reason about an arbitrary number of nearby entities instead of a fixed-size observation space. It also served as a benchmark for how different sensor and network configurations affect decision sampling speed in real-time gameplay.
A multi-threaded multi-agent environment built on Unity's Data-Oriented Technology Stack, using the experimental DOTS branch of ML-Agents to push per-agent AI to a scale that is normally impractical in standard Unity. Hundreds of agents compete simultaneously in a battle-royale-style arena, with two adversarial networks trained against each other to see what emergent behaviour appears. Originally a research collaboration with Enhearten Media to evaluate whether per-agent learned AI could be feasible inside an RTS game.
A commercial endless runner shipped on Android and iOS at Comet Studios — a polished, balanced game taken end-to-end, alongside the more research-focused projects here.