Bio
I'm a Computer Science student at the University of Waterloo. I want to build honest software that helps people, and I'm drawn to full-stack development, automation, and systems with real users. Lately I've been most curious about computer vision and AI/ML, and I hope to pursue research down the line.
Outside academics I stay active through climbing, volleyball, reading, and cooking. Learn more about me below.
Work Experience
Software QA Analyst — Environment and Climate Change Canada
Sept. 2025 – Dec. 2025 · North York, Canada
- Designed and maintained end-to-end (E2E) regression suites in Python, Robot Framework, TypeScript, and Playwright, cutting manual test cycles by 60% and surfacing 20+ defects ahead of release.
- Owned cross-environment functional, integration, and usability test plans, validating new features and defect fixes through UAT sign-off.
- Drove defect triage in Azure DevOps by sharpening reproduction steps and consolidating duplicates, lowering duplicate report rate by 40%.
IT Technician and Support Analyst — Environment and Climate Change Canada
May 2025 – Dec. 2025 · North York, Canada
- Delivered Tier 1 and Tier 2 support for 200+ end users, cutting average resolution time by 50% by writing reusable diagnostic playbooks.
- Built PowerShell and Python automations for account provisioning and software deployment, reducing onboarding effort by 35%.
- Deployed and hardened Windows workstations at scale with Microsoft Autopilot, Intune, and Entra ID, standardizing setup across the team.
ServiceNow Software Developer — ServiceNow Developer Program
Jan. 2025 – Aug. 2025 · North York, Canada
- Shipped Client Scripts and UI Policies that automated multi-step approval workflows, removing repetitive manual steps for end users and tightening process consistency.
- Used the GlideForm and GlideUser APIs to add dynamic validation and role-based UI behavior, improving data quality at intake.
Projects
H[AI]r Swift, SwiftUI, iOS in progress · private
A native iPhone app I'm currently building in SwiftUI. Focused on a clean, responsive user experience; more details coming as the project matures.
Chess Engine C++
Built an object-oriented chess engine in C++ as my CS246 final project, implementing full rule enforcement — castling, en passant, promotion, and check/checkmate detection — alongside a tunable AI opponent powered by minimax with alpha-beta pruning. GitHub
Quote Finder Python, Flask, React, TensorFlow
Full-stack app that surfaces relevant quotes and verses from natural-language prompts using sentence-transformer embeddings and cosine similarity, served through a Flask REST API and consumed by a React front-end. Reached 85% relevance accuracy on a held-out evaluation set. GitHub
Image Lab Python, Tkinter, Flask, OpenCV, Docker
Desktop image-processing app exposing 10+ OpenCV transformations through a Tkinter GUI, backed by a containerized Flask REST API and verified with Postman. Profiled and rewrote the processing pipeline to bring end-to-end runtime from 2.5s down to under 1s, and integrated Real-ESRGAN to clean up low-quality uploads. GitHub
Magestic Brawl Python, Pygame-CE Gymnasium currently adding new features and reinforcement learning
A 2-d streetfighter game that uses magestic characters. Written in Python and I try to improve it whenever I have the time. GitHub
ML Notes Markdown, Python (Pandas, Tensorflow, Numpy, PyTorch)
An evolving ML/AI learning sandbox with study notes, notebook experiments, and chapter-by-chapter work from hands-on machine learning resources. GitHub
Notes Markdown
An open, growing collection of notes spanning coursework, papers, tools, and ideas I want to keep close at hand. Public so others can read along or borrow from it. GitHub
ECCC Scripts Python
During my co-op at Environment and Climate Change Canada, I made a few scripts to help boost my productivity at work. I changed the scripts to be generic since I can't display any data that I used while working. GitHub
Self-Driving Race Car Python · PyTorch · Gymnasium
Rebuilding a deep reinforcement learning agent that learns to drive a race car from raw pixels. The agent uses DQN to navigate a procedurally generated track in the CarRacing-v3 environment, with the goal of scoring 900+ averaged over 100 races. A rewrite of an existing TF1 implementation, now in modern PyTorch. GitHub
Neural Ronin Python · Pygame · Gymnasium · Stable-Baselines3 in progress
A 2D samurai platformer built as a reinforcement learning training environment. The game is built from scratch using the pygpen engine, featuring sprite animations, physics, tilemap-based levels, and combat. A Gymnasium wrapper exposes the game as an RL environment, with a PPO agent trained via Stable-Baselines3 to learn to fight through levels from game state observations. GitHub
Reading
Papers and writing I've been working through. Nothing published of my own yet — I'm reading to follow what interests me and to get better at engaging with research.
Link You can view my annotations to these papers via this link.
- Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data — A practical super-resolution model trained on synthetic data to upscale real-world low-quality images. I used it in Image Lab to help clean up uploaded images.
- How to Read a Paper — A short guide on the three-pass method. I wanted to read papers more effectively as a student and (hopefully) future researcher.
Blog
Writing occasionally. Nothing published yet — check back.
Misc
- I play volleyball — especially beach volleyball. Here are some random clips of me playing.
- I also like to work out and rock climb.
- I like to cook, bake, and eat food.
- When I have the time, I read books.
- I agree with this website, so no frameworks were used to build this one.