Through my undergraduate studies in Software Engineering at the University of Waterloo and pursuing interests on my own time I began/competed  some interesting projects.

You can find additional projects on my GitHub.


  • HypeMachine Chrome Extension
  • This is a chrome extension that that started it all! It quite simply adds a download button next to all the songs. You still have to right click and click save link as, but now you don’t have to go to the blog post. I managed to reach around 10,000~ downloads from the Google appstore before HypeMachine asked me to take it down. I’m still maintaining it on my Github page and fixing it whenever they make changes to how they serve up their music.

  • MetaHypem
  • This is a project done collaboratively between me and Alex Hortin. It is a site written in NodeJS and offers users an easy solution online on downloading songs from HypeMachine. It was a blast learning NodeJS and I feel like I’ve drank the Kool-Aid. I almost want to start all my projects in *gasp* JavaScript *gasp*.

  • Hype Machine Scraping Script
  • I wrote a script that batch downloads songs from the website HypeMachine. The script is written in Python and I’ve been maintaining it as a point of reference for others to learn how to grab their songs from the site! 🙂

  • Extended Ray Tracer
  • Here is a website demoing the extended ray tracer I had created for CS488. The raytracer is built upon the previous assignments in the course (however from scratch!) and the website goes onto to slightly explain how some of the features were implemented. I greatly enjoying learning how it was done.

  • Small Real Time Executive
  • This was the document submitted originally for the design of the RTX for our ECE354 project. The purpose of the project was to build a small kernel (outlined in the document) to handle some outlined processes. The document was well written and received high marks, although we had discovered that our group had misunderstood the specification of the k_receive() function, in that a process does not block waiting on a specific ID in the implementation they demanded. One of the best fundamental courses Iv’e taken thus far. Made me appreciate low level programming…