Increased game management efficiency by translating internal tools from PHP to React.
Upgraded in-game social systems built using Java, SQL, and Typescript, enhancing play experience for thousands of live users.
Strengthened player connections by discovering sources of long standing bugs via the debugging features of Docker containers.
Collaborated in an Agile team using Jira, Confluence, and Slack to maintain live service games running on Firebase and Redis.
Programming Experience
Team Member
McMaster Competitive Programming Team
Oct 2021 - Aug 2023
cpp
python
Represented McMaster in the International Collegiate Programming Contest as a member of the junior team in 2021-2022, and placed 3rd out of 26 contestants in the 2022-2023 tryouts, qualifying as a member of the leading team.
Projects
TCG Collection Management App
Collectibles tracking and trading cross-platform app built with Next.js, Capacitor, Vercel, and Supabase.
Visual card identification using YOLO, OpenCV, and Image Hashing.
Automatic trade recommendations based on users' collections and wishlists.
Card scanning
Native android app: home page
Web application: trading page
<<< Swipe
vercel
prisma
supabase
capacitor
next
chakra-ui
typescript
python
YOLO
onnx
openCV
Missile Command 3D
Participated in Ubisoft's NEXT competition, using the provided API to create a 3D game engine in C++, implementing memory pools and an Entity Component System.
Benchmarked different custom implementations of vector/matrix math, using Python to visualize results.
Recreated the arcade game Missile Command with 3D graphics, and physics-based missiles
Missile Command 3D
Using 3D camera to zoom in
Analysis of different math vector implementations
<<< Swipe
cpp
python
Esoteric JS Transpiler
No LLM use
As a programming exercise, created a transpiler that uses only the characters =_$(){}><~!%^&|*-+[];:?.,/ to encode any Javascript code
Running transpiled code
<<< Swipe
javascript
html
css
Multiplayer Mastermind
No LLM use
Built a custom Java package for making GUI programs ( github.com/rsninja722/gamej ) using AWT and Swing, handling multi-threading, rendering that leverages the GPU, asset loading, camera systems, and mouse and keyboard input, also providing documentation and project templates.
Defined a communication protocol and wrote a server using Netty that can connect users with different clients.
Created a game client and a bot server to also allow individual play.
Two clients playing over the network
<<< Swipe
java
Webassembly Platformer
No LLM use
Created a platformer game with C++ using the Raylib game library for the Ludem Dare 51 game jam in 72 hours
Compiled the game to run on the web with WebAssembly using the Emscripten toolchain