Computer Science + Statistics undergrad at McGill — interested in machine learning, recommendation systems, and systems programming.studying how recommendation algorithms shape what people see.building from the ground up — operating systems, pathfinders, cache-aware code.based in Montréal, QC — graduating May 2026.
00
About
Welcome to Kaze's House. Kaze (風) is Japanese for "wind" — a handle I go by online; the name on transcripts and papers is Guanwen Zhang. This is where I keep notes on what I'm studying, building, and reading.
B.A. candidate at McGill University in Computer Science and Statistics — graduating May 2026, GPA 3.72/4.00. Coursework includes applied regression, machine learning, operating systems, data structures and algorithms, probability, and mathematical analysis.
Most of my work sits between data and systems: studying how recommendation algorithms shape what people see, and building lower-level systems — schedulers, pagers, pathfinders, cache-aware routines — to understand the infrastructure underneath.
Stack Python · R · C / C++ · Java · JavaScript · OCaml · Bash
01
Research
→
Student Researcher — McGill University
YouTube recommendation algorithm & echo-chamber study, advised by Prof. Joseph Vybihal. Built a Python pipeline (OAuth2, YouTube Data API, transcript extraction) generating weekly JSON datasets of 90 videos per account; clustered subtitles in 300-d word2vec space with K-means; tracked weekly bias with custom lean-proportion indicators in R.
Dec 2024 — May 2025
→
Research Participant — The Prometheus Lab, McGill
Provided experimental data for the lab's algorithm research.
Jan 2025 — May 2025
02
Projects
·
Mini Operating System in C
Unix-style shell with variables, scripts, and exec/source; scheduler with FCFS, SJF, RR, RR30, and aging; demand paging with shared read-only code pages, per-process page tables, and exact LRU; pthread queue synchronized with mutexes and semaphores.
2D grid map engine with deserts, mountains, facilities, subway stations, and zombie ruins, supporting BFS/DFS from any cell. Constrained LARAC routing combines distance and damage maps to find paths that minimize travel cost while preserving health.
// LARAC: shortest path under a damage budget
λ = 0
loop:
p ← shortestPath(distance + λ · damage)
if damage(p) ≤ budget: return p
λ ← (cost(p_min) − cost(p_max))
/ (dmg(p_max) − dmg(p_min))
Java
·
Template Matching & Cache Optimization
Sum-of-absolute-differences "Where's Waldo" template matcher in MIPS, visualized via the MARS bitmap display. Rewrote the naive nested loops with reordering, unrolling, and template-row registers to cut memory accesses and cache misses across cache organizations.