Kaze's House Guanwen Zhang · Montréal
KAZE'S HOUSE
Guanwen Zhang — personal Montréal, QC --:--

Kaze's House 風の家 La Maison du Vent

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.
// scheduler.c — round-robin tick
proc_t* schedule(queue_t *q, int quantum) {
    proc_t *p = dequeue(q);
    p->cpu_time += quantum;
    if (p->state == RUNNING) enqueue(q, p);
    return p;
}
C
·
Java Pathfinding for Post-Apocalypse Maps
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.
# inner SAD loop — template row in registers
lbu   $t0, 0($s0)         # image px
lbu   $t1, 0($s1)         # template px
subu  $t2, $t0, $t1
abs   $t2, $t2
addu  $s7, $s7, $t2       # accumulate
MIPS
03

Notes

·
Recommendation algorithms and the shape of attention
Field notes from a YouTube echo-chamber experiment.
soon
·
LARAC, intuitively
A walk-through of constrained shortest-path under a damage budget.
soon
·
Reading list — Spring 2026
Statistics, ML, and a bit of media studies.
soon
04

Contact

Email
guanwen.zhang@mail.mcgill.ca click to copy
Phone
+1 438 864 2298
CV
↓ download CV (PDF)
Location
Montréal, QC