Selected Projects


We're building an open engineering library that aims "to accelerate and protect humanity’s technological advancement by providing a comprehensive, open, practical library of technological knowledge."

  • Active: 2020-2022
  • Role: Founder, lead developer


LabXchange is a very feature-rich life sciences education platform and community, powered by Open edX, Django, and Discourse. An OpenCraft project.

  • Active: 2018-2020
  • Role: Lead developer


Game engine and mobile web app that powers "Apocalypse Made Easy", an outdoor, team-based apocalypse survival training game.



Simple, flexible web application for managing personal budgets.


Open edX SAML/Shibboleth Integration

I was the lead developer of the new SSO features of the Open edX Cypress release, which included SAML/Shibboleth integration. An OpenCraft project.


Open edX Content Libraries

I led the engineering design and implementation of the new "Content Libraries" feature of the Open edX platform. An OpenCraft project.


Agents of Nature

Place-based educational adventure game for kids that can only be played in parks.

  • Active: 2011-2014
  • Role: Lead developer

Explore150 App

Location-based app to connect with Canadian historic and cultural sites, as part of Canada's sesquicentennial celebrations.

  • Active: 2013-2014
  • Role: Lead developer

OGO Website

I developed and maintained the website for the OGO Car Share Co-op.



An application for displaying synchronized multimedia presentation on a group of iPads via an ad-hoc Bluetooth or Wi-Fi mesh network.

  • Active: 2014
  • Role: Sole developer
iOSObjective C

Quotations Collection

A collection of my favourite quotations.

  • Active: 2006-2022


An extension for the Marmalade Mobile Game SDK that implements native geographical map support on iOS and Android.

MarmaladeiOSAndroidOS XC++Objective CCJava


A Python package for computation and analysis of astronomical data using dendrograms.

PythonNumPyImage Processing

Quantified Comparison of Molecular Cloud Structure

My undergraduate thesis: using "dendrograms" to produce a quantified difference score between two data sets representing molecular clouds. Also led to this paper.

  • Active: 2011-2012


Python package for loading and viewing radio astronomy data cubes.

  • Active: 2011-2012
  • Role: Sole developer
  • Source: astrocube
PythonNumPyImage Processing

Differential Cryptanalysis Example

An Excel workbook to help understand and teach differential cryptanalysis. Includes code for a working attack.


Get to Know Website

This non-profit program's complex website supports their numerous initiatives. I developed the site with PHP for several years and later re-wrote it using Django.

  • Active: 2008-2014
  • Role: Lead developer

Morningstar Office

I designed and spec'd Morningstar Interactive's unique eco-friendly Kelowna office space, which was featured in Armstrong Ceiling & Wall Systems 2013/14 catalogue.

  • Active: 2010


Custom time tracking, payroll, and password management software used at Morningstar Interactive.

  • Active: 2009-2014
  • Role: Sole developer


Scholarium was a Facebook app that let university students share their timetable, find classmates, and rate professors. It had a few thousand users, and according to random people, it was one of the best Facebook apps for students. Sadly, I can't find a screenshot.

  • Active: 2006-2008
  • Role: Sole developer

Tom Mah Karate

I designed, developed, and maintained the website for Tom Mah School of Karate and the Kelowna Traditional Martial Arts & Fitness Centre, which included a custom-built CMS, photo gallery, and other apps written from scratch.

  • Active: 2001-2007
  • Role: Sole developer & designer

KDE User Account Control Module

One of my first open-source projects - a KDE control center module for viewing and changing basic information about your UNIX user account, such as full name, password, or the user avatar seen in kdm.