← Back to education
education

University of Victoria

UVic campus

Programming found me in a high school class. The assignment was simple: build a video game in C++, one month, do whatever you want. I spent most of that month stuck on small, dumb-sounding problems. How do you make a jump feel right? How do you tell when two things have actually collided? Why does this move so janky? Figuring each one out was more fun than schoolwork had any business being.

The game itself wasn't really the point. What got me was the moment a problem finally clicked after I'd been stuck on it for a while. I kept chasing that feeling, and it's basically why I ended up studying Computer Science at the University of Victoria, finishing my degree in 2012.

A handful of courses fed that same appetite more than the rest did. None of them were required for any job I've had since; they just had a genuinely good "why" once I dug into them:

  • Randomized Algorithms: sometimes letting an algorithm make decisions by chance makes it faster and simpler than trying to control everything.
  • Fault Tolerant Computing: how to design a system that keeps working even when you assume parts of it will fail.
  • Operations Research: Simulation: modeling messy real-world systems well enough to predict how they'll behave before you touch them.
  • Computer Networks: the layers of agreement it takes to get a message across a wire that's constantly dropping and reordering things.
  • Databases: what guarantees a system can actually make about your data when something crashes halfway through.
  • Digital Signal Processing: turning a continuous, messy signal into math you can reason about.

That's still the itch today. Untangling a gnarly bug myself scratches it just as well as helping a teammate work through one on their own. It's the real reason I've never fully picked a side between writing the code and growing the people who do.