Experience


Moving AI Lab @ UAlberta | Graduate Research Assistant 2024 - 2026

Produced my MSc thesis under the supervision of Professor Nathan Sturtevant.

  • Accelerated training 64x by parallelizing self-play with a batched inference server for a custom JAX/Flax AlphaZero implementation on a Slurm compute cluster

  • Increased AlphaZero's win rate by up to 30% pts (and value head accuracy by up to 5% pts) by replacing the default MC value targets with TD(λ), then developed λ-interpolation to mitigate slow TD convergence speed

  • Diagnosed why training with ground truth targets failed (majority-class collapse from imbalanced targets), developed mitigations that made this training succeed, and RL+NN training more robust

  • Utilized solve data from strongly solved Chinese Checkers to demonstrate AlphaZero's value accuracy exceeds that of its training data

  • Used AI agents to automate tasks, reducing task durations from weeks to hours, while ensuring correctness of produced work

University of Alberta | Graduate Teaching Assistant 2024 - 2025

CMPUT 272 – Formal Systems and Logic in Computing Science (Fall 2024); INT-D 161 – Artificial Intelligence Everywhere (Winter 2025, Fall 2025).

  • Self-taught formal logic and proof material each week to present and field student questions live for a class section of ~100 students

  • Automated grading with a Python + Google Sheets pipeline: pulled raw scores via Canvas API, displayed and computed statistics via sheets, flagged anomalies, and generated a CSV for bulk Canvas grade upload

Natural Language Laboratory @ SFU | Research Assistant 2023 - 2024

First-authored a paper published at NAACL 2024 under the supervision of Professor Anoop Sarkar and his PhD student Hassan Shavarani.

  • Enabled unified black-box evaluations of 13 end-to-end entity linking systems in GERBIL, with per-system adapters (tokenization, document splitting, token-to-character alignment), reproducing published scores to within 2%

  • Demonstrated through candidate set ablation experiments, that while most entity linking systems fail without custom candidate sets, generative and structured prediction systems are robust

  • Demonstrated that systems lose performance when candidate sets include the full in-domain vocabulary, along with increases in inference time

Redmane Technology LLC | Software Developer 2021 - 2023
  • Developed case management software in C#/.NET, coordinating with product and operations teams in an agile workflow using JIRA and GitHub

  • Built Redmane Canada's first live interface using the Azure ecosystem and REST APIs, saving the client thousands of hours per year of manual data transfer

  • Led client-facing design and go-live sessions; trained end users to ensure smooth organizational transitions to our software

  • Used T-SQL scripts to automate development work, investigate production issues, and implement data fixes

Publications


Investigating AlphaZero's Value Targets Using Strongly Solved Chinese Checkers | MSc Thesis 2026

We train AlphaZero, modified with TD(λ) targets, on the strongly solved game Chinese Checkers. We investigate its training dynamics using the game-theoretic solve data as ground truth. We find that AlphaZero model accuracy exceeds the accuracy of the data it is trained on. We diagnose why training with ground truth targets has failed in previous work, develop mitigations for this which make RL+NN training more robust, then use this to enable TD(λ) targets. Our technique produces more accurate models, more accurate training data, and stronger players.

Unified Examination of Entity Linking in Absence of Candidate Sets 2024

We replicate various entity linking methods, then perform candidate set ablation experiments on them. We creat a unified evaluation environment, with per-system adapters, to ensure valid comparability between results, and evaluate all models on a new dataset. We demonstrate that most systems fail without hand-crafted candidate sets, with the exception of generative and structured prediction methods. Replacing candidate sets with the full vocabulary costs performance and inference time. Methods did not generalize to our new dataset.

Education


University of Alberta | MSc Computing Science, 2026 2024 - 2026

Master of Science (Thesis) in Computing Science, 3.9 GPA. Thesis: Investigating AlphaZero's Value Targets Using Strongly Solved Chinese Checkers

Simon Fraser University | BSc Computing Science, 2021 2018 - 2021

Bachelor of Science (with Distinction), Major in Computing Science, 3.73 GPA

Projects


Robotics w/ the Duckiebot Platform 2025

Learned about robotics and computer vision using the Duckiebot platform. This was for CMPUT 503 at the University of Alberta. Report.

  • Worked with ROS/rospy - nodes, topics, services, messages, and rosbags.

  • Utilized odometry data calculated from wheel encoders to perform localization and path visualization

  • Used OpenCV for computer vision - color detection, AprilTag detection, and lane detection.

  • Implemented PID controllers to perform lane following.

  • Bonus: Built a PyBullet Simulation to compare PID and MPC controllers balancing balls on a plate. Report.

"Ray Tracing in One Weekend" in One Engine | Realtime C++ Vulkan Ray Tracing Engine 2021

Based on the "Ray Tracing in One Weekend" series. Video.

  • Developed in C++ using the graphics library Vulkan

  • Implemented Ray Tracing principles in a compute shader, which then renders the final image directly onto the swapchain's images

Bitcoin Lite | Blockchain Protocol & Simulator 2020

A blockchain networking protocol based on Bitcoin's original whitepaper with networking, proof of work, longest chain, and mining functions. GitHub.

  • Learned about blockchains by developing a blockchain networking protocol based on Bitcoin's original whitepaper

  • Major features include networking capability, proof of work, longest chain, and mining functions

  • Utilized multiprocessing and concurrency to develop a simulated socket interface, allowing one machine to simulate multiple nodes over the internet

  • Used TCP sockets at the application layer to allow a single machine to act as a node for this program on the internet

Hotel Analysis | Data Science and Machine Learning 2020

GitHub.

  • Extracted relevant information from big data (OpenStreetMap dataset) using Spark and Hadoop on SFU's compute cluster

  • Feature engineering with Pandas and Numpy, training and optimization with scikit-learn (Random Forest, Pipelines, and Grid Search), visualization with Plotly

  • Trained a model that can explain 35% of a hotel's score knowing only its location