Remote Software Engineer @ Stripe and cellist based out of Ontario. Previously @ GitLab. Fascinated with building usable, delightful software.
tree-online. An online tree-like utility for generating ASCII folder structure diagrams. Written in TypeScript and React.
373inspiral-web. The web version of the Inspiral app.
286ts-key-enum. A TypeScript string enum for compile-time safety when working with event.key
117ts-keycode-enum. A TypeScript enum definition that maps human-friendly key names to JavaScript key codes
81ldraw-visualizer. An in-browser LEGO model viewer, built using three.js and LDraw part files.
27cooltojs. A Cool-to-JavaScript transpiler, written in TypeScript
25angular-cli-customizer. A small command-line Node module that allows Angular CLI's Webpack config file to be customized
13Rook. An online, multiplayer implementation of the classic card game Rook, using WebSockets.
10nuxt-resume. My résumé, built with NuxtJS and Tailwind CSS.
9ts-git. A naïve implementation of git, written in TypeScript. Built to help me understand how git works under the hood.
6inspiral. Relive your childhood in pixel-perfect bliss.
6origins-host. A js-box (DOSBox) app to allow my old QBASIC programs to live on through the internet
5google-translate-xlf. A command-line utility to automatically translate .xlf translation files using Google Translate
4NodeChat. A simple application to acquaint myself with Node.js, AngularJS, LESS, Grunt, Bower, and Yoeman.
4wordle-solver. A bookmarklet and Twitter bot that automatically solves the daily Wordle puzzle
3Theremin. A musical instrument using Chrome, the HTML5 Web Audio API, and a Leap Motion controller.
3dynamicInput. jQuery plugin that allows for dynamically addition and removal of input boxes
3Mandelbrot. A simple way to view the beauty of the Mandelbrot fractal
3webgl-chess. Final project for HCI 557: Computer Graphics and Geometric Modeling at Iowa State University
2bulletInput. A jQuery plugin that allows users to enter bullet-listed data in a simple, WYSIWYG manner.
2snow-day-notifier. A small Lambda function that scrapes PEI's public schools website and sends alerts (through IFTTT) if school is delayed or closed.
2lab-assistant. An Alexa skill for managing your open-source projects hosted on GitLab.com using your voice.
2BrowserFS. BrowserFS is an in-browser filesystem that emulates the Node JS filesystem API and supports storing and retrieving files from various backends.
1pi-hole. A black hole for Internet advertisements
1AdminLTE. Pi-hole Dashboard for stats and more
1wiki. A no-frills personal wiki, using vue.js and markdown-js.
1toggleRadio. A jQuery plugin that makes standard radio buttons toggleable
1stripe-connect-test-project. A project to test out Stripe Connect
1toolbox. A collection of handy objects I've developed over the years - kept here for safe keeping
1TutorialOverlay. A simple way to add "tutorial" overlays to existing WPF applications.
1days-until. An Alexa skill that counts the number of days until special events.
1Battleship. An online gameboard for multi-player Battleship.
1Origins. All of my old QBasic programs, written when I was in grade school. Kept safe here for purely nostalgic reasons.
1create-react-app-test. Testing a PR I made to CRA
1Metronome. Metronome app for Android.
1qmk_firmware. keyboard controller firmware for Atmel AVR and ARM USB families
1