Older Hobby Projects
Many of these projects started as university assignments that I extended into apps others might find useful, and I’ve added plenty of hobby projects since. They helped me pick up new skills, meet new friends, and explore new interests.
This archive is intentionally a small museum of older software projects, some of which are more than 15 years old and some over 25.
If you're curious about current side projects, please return to my current hobby projects, github page, or npm profile. A handful are public repositories, though many are private.
Algorithm / Programming
In my junior years at Simon Fraser University, I spent semester breaks extending favorite class projects. Through them, I taught myself programming techniques and algorithms that still serve me well.
Shortly after graduation, I built a hobby project I called ASCII Art Steganography. It was Slashdotted in January 2009, which was a proud moment.
Some examples: Digit Recognition, Huffman Tree Compression, Computer Language Translation, Socket Programming and Zip/JPEG File Mask.
3D Graphics / OpenGL
Computer graphics was my first upper-division computer science course in my second year at SFU. It finally put all the linear algebra to good use, and we got to use the "new" 1.8 GHz machines that were cutting edge at the time. The projects were visually rewarding and laid the foundation for becoming a software engineer in the gaming industry after graduation.
Notably, 3D Room Scene was showcased in SFU computing science Employer's Open House 2003, and 3D-Tetris Screen Saver was showcased in 2005.
C# and COM
I picked up a few skills from my co-op experiences at Crystal Decisions/Business Objects and Pivotal/CDC Software. I started using Perl to automate tasks, including generating spreadsheets and status reports from a single data source. I also dove into C# and COM while developing applications to integrate into Microsoft Visual Studio 2005.
My first side projects in C# included a multiplayer UNO game and a small program that automatically refreshed a webpage using the IE Active-X control.
Miscellaneous
Since I like programming so much, I often spend my free time making utilities that I think would be useful. These utilities are usually written in either C++ or C#, and MSN Ad blocker was particularly popular until MSN was shut down.
Scripts and Tools
Python used to frustrate me with its indents and duck-typing. In 2011, I decided to use it more in my regular work since fans kept raving about it and I ended up enjoying it too. Now when I need something written up quickly, I turn to Python instead of, say, C#. It's cross-platform, concise, and easy to hook up with a UI in OSX.
Web Apps
The first real web applications I wrote were done with Perl when blogging was starting to gain popularity. I hosted my Perl blog on my university site and later shut it down in 2005 when I stopped updating it.
I picked up PHP and SAJAX a bit later, and along with two other CMPT 470 classmates we created an ACM-Style programming contest environment.
I've worked on a number of web apps over the years using Google App Engine, Django and Ruby on Rails as side projects. In 2012, we created Qurious to participate in the Royal Canadian Mint Mintchip Challenge.
Recently, I've done more work with JavaScript (jQuery and SproutCore) to create rich and deeply engaging web applications. With the proliferation of mobile devices, building responsive and feature-rich web applications that work across different platforms and resolutions is often the most efficient way to deliver content.
At Visier, I use Angular, TypeScript, and the Play! Framework on Scala.
ITK Medical Image Analysis Toolkit
As part of the research work I did in August 2004, I created a large C++ image segmentation and registration program using the ITK library. It's ideal for researchers who want quick experience with the rich ITK library but don't want the hassle of compiling the library and example code.
In 2005, I started the MATLAB library (MATITK) project, which allows researchers to access ITK algorithms in the MATLAB environment. Hundreds of researchers worldwide use this library now.
All software is provided here "as is". I hold no responsibility for any unintended effects that may result.






