I find that working on projects is the best way for me to learn. There is something to be said for actually sitting down, thinking about how to solve the problem and actually implementing it. I’ve found that there are hidden challenges that I wouldn’t have seen if I had just designed a solution on paper.

Check out these projects to see what I’m working on:

Project Rhino

Completed/Retired - A music search engine that allows you to ask questions about the music world in plain English. Check out a video here.

Encrypted Gmail Backup

Code Available - Backup your GMail account with GPG encryption

Unofficial Waterloo USA Intern Guide

Public - A page of information I wish I knew the first time I interned in the us. Contributed to by many others.

Peer-to-Peer Filesync Application

ECE454 - A BitTorrent style file sync application in Java.

MIPS Processor

ECE429 - A cycle-for-cycle implementation of a simple MIPS processor in Verilog.


Completed/Retired - FidoFetch is a news reader that shows you articles interesting to you by learning about what you like.

Ethernet Network Simulation

ECE358 - Simulation of an Ethernet network to test impact of large collision domains in C++.

Kirsch Edge Detector

ECE327 - Efficient implementation of the Kirsch edge detector algorithm in VHDL.

Hospital Database System

ECE356 - A CRUD web application for a patient database in Java with MySQL


Code Available - A python module for monitoring your web app with FnordMetric


Code Available - Downloads content from Desire2Learn used at the University of Waterloo

Beanstalk Ganglia Monitoring

Code Available - A python module for monitoring a beanstalkd instance with ganglia (opensource)

Compile Cluster

Completed/Retired - A cluster of 6 heterogeneous Gentoo machines that booted from the network


Completed/Retired - is a URL shortener.

Twitter Sentiment Extraction

In Testing - Analyzes tweets for positive and negative customer service experiences

Mobile Investor

Completed - Buy, Sell and Research stocks via SMS