A Logic Programming Computer Chemistry System

CWSF 2014, 2015

Chemlogic is a system that helps users solve chemistry problems. It can be applied as a study tool for high school chemistry and as a calculation tool in the lab. Chemlogic is available on the Web and on Android.

Balancing a chemical equation


A system for implementing backups in complex environments

TTP 2011

alpine-backup is a backup system designed for implementing complex backup scenarios. Synchronization between backup servers, status monitoring and support for various services are all built in. rsync is used to perform incremental backups.


A command-line client for Minerva

September 2016

The Minerva client is a CLI for Minerva, McGill's student information system. Tasks such as course registration or viewing one's course schedule can easily be performed. This project aims to provide an efficient alternative to the frustrating experience of using Minerva as a student.

A timetable generated with Minervac


My hilariously over-engineered alarm clock

Winter 2015/2016

One day, I overslept and lost 5% of my grade. To prevent this from ever reoccurring, I built my own alarm clock: Wake up times are determined from my course schedule. Alarms can only be silenced by presenting my McGill ID. Configurable from my phone.


A minimalist wireless connection manager

September 2016

Most network managers for Linux seem to malfunction frequently, yet wpa_supplicant is somewhat more stable. Whyfi is a minimalist network manager that can connect to networks, save changes and restart the interface. It's also less crashy, so far.

Web Platform for Mount Sentinel School

Powered by two overheating Pentium IV towers


I designed and implemented my high school's website, student portfolio system, LMS and digital signage system. These applications served over 300 users. I maintained uptime by implementing database replication and automatic failover between the two servers. I also implemented SSO using LDAP, Drupal Bakery and Moodle Mnet.


Automatic web page login with KeePassX and Chrome

July 2016

A small script + a Chrome extension to autofill credentials from my password manager into webpages. Forms are filled using the DOM, rather than autotype, reducing a common nuisance. Credentials are only necessary when an actual login form is found. Designed specifically for my use case.

My Personal Website

Included soley for the Droste effect.

September 2016

I'm rewriting my website to present more of my work at a glance. More projects, some photo essays and hopefully an updated blog, will form the content for the new site.


A lightweight photo gallery with EXIF commments

Mintphoto is a photo gallery script that reads captions from EXIF comments rather than use a database. A web interface for selecting and captioning photos is included. Keyboard shortcuts are implemented for quick navigation.