BMath · Computational Mathematics · University of Waterloo
A web portfolio about me.
I'm a 2nd-year Honours Mathematics student at Waterloo, heading toward majoring in Computational Mathematics.
I think Machine Learning is pretty interesting and am working on a few projects for work and personal use.
In my free time, I enjoy fishing, watching movies, and running raids in Runescape or Destiny 1. I'd love to connect over shared hobbies so feel free to reach out!
Built and deployed a RandomForest classifier end-to-end — model training with scikit-learn, served via a FastAPI REST API with Pydantic validation, full pytest suite, and GitHub Actions wired up for CI.
Mostly lived in Salesforce and SQL — writing SOQL queries, building dashboards, tracking a 9-figure book-of-business migration. Managed tickets and docs in Confluence and Jira.
Resolved some logic and formatting issues in the PyTorch docs — fork, branch, PR, full review cycle. Here is where I learned Git.
Personal movie recommender trained on Letterboxd export data. Combines NLP text embeddings of film descriptions with SVD over the user–film rating matrix. The goal is recommendations that feel personal, not just popular.
A habit tracking app built in JavaScript, running as a home screen widget on iOS via Scriptable. Just download Scriptable, copy habitTracker.js from my GitHub, and paste it in.
Based on the Merlin Bird ID app by Cornell Lab. Snap a picture on the water and get an answer in seconds.
"Fine-tuned CNN using transfer learning on a pretrained ResNet. The heavy lifting — low-level feature detection — is already learned. Fine-tuning adapts the final layers to fish species classification specifically, which means reasonable results without an enormous dataset." ~ Claude
f(x) = softmax(W · ResNet(x) + b)
min cᵀx s.t. Ax ≤ b, x ≥ 0
A Gentle Introduction to Optimization by Guenin, B., Könemann, J., & Tunçel, L.
click to open notes ↗
A = U Σ Vᵀ, Σ = diag(σ₁, …, σₙ)
Made possible by 3Blue1Brown.
click to open notes ↗
...
Still learning...
click to open notes ↗
Looking for ML-adjacent roles — internships, research, or full-time. Open to all industries, all types of companies, and all locations.