New Projects


An es2015+-isomorphic altjs language, built to interoperate with Babel.

Once it’s ready/usable (mid-February 2016), I’ll start advertising it on HN, etc.


A remake of



Misc contributions. Currently (2016-02-03) working on a PR to upgrade lodash to version 4.

Atom Editor Packages and Contributions

CoffeeScript, JavaScript, Electron

Also contributed to atom-block-comments, es-identifier-highlight, atom-tree-view-breadcrumb, atom-fold-functions.


Numix Project


Some small icon contributions to the base theme and the circle theme.

Gift exchange bot

Node.js, nodemailer

Since my family lives in different cities these days, our usual “hand out slips of paper” for arranging who should give gifts to who method wouldn’t work anymore.

So I wrote a quick little script that sends out an email to each person for who they’re giving a gift to, that’s even better than slips of paper since it can make sure that they don’t get their spouse’s name.

I could turn this into a simple web service in time for next year! (Which would also solve the problem of not accidentally peeking at someone’s email if you got the address wrong, which happened. :open_mouth: ) - Add Overkill damage statistic

Node.js, Angular, MongoDb

The creator of SizzlingStats (a plugin for recording statistics in competitive TF2) added a new statistic and asked me to add support for it on the website. It took me a couple hours, including feedback and a quick iterative improvement, especially since I was already familiar with the entire stack.

Upcoming: Fix some more issues on

Mumble VOIP - Logitech G-Key support

C++, Qt, DirectInput, Windows

I own a Logitech keyboard, and I prefer to use special programmable “G-Keys” for my push-to-talk key, so I worked with the project’s maintainer to write a module to interact with Logitech’s library in a GPL-compliant environment. I also [provided user docs][Mumble G-Key User Docs] for use of the keys.

Azio Levetron Mech5 Keyboard Linux Driver

C, Linux Kernel, HID Descriptor protocol

This is another keyboard I own, however, it also has some macro keys that needed a driver to be written for Linux.


C++, Qt, DirectInput, Windows, IPC

Although I had a linux driver for my Mech5 Keyboard, it’s support is also rather goofy on Windows, where only Mumble seemed to be able to detect the macro keys. So I extracted out the keybinding code from mumble to a separate application, so that the keys could be used for any purpose imaginable.

Since this uses the same keybinding code as mumble, it’s not only bound to the Mech5 keyboard, it works with anything that mumble (DirectInput) can detect, such as XBox and PS3 controllers.


C++, Windows

The primary motivation for NiftyKb was to get these special buttons to work in TeamSpeak, so I forked the G-Key plugin for TeamSpeak so it could be driven by NiftyKb.


Fixed a bug relating to newlines



Debugged and fixed serious bug relating to headers and overridden macros.


Added an additional umd build mode.

In Planning

These are potential, only in planning stages / proof of concept projects, based on previous work and research during other projects.


A JavaScript / Node.js build tool that uses npm to run npm scripts directly and in parallel, within a single node process, to save memory, cpu and disk usage, so that npm scripts can fully compete with gulp.


node-ddcci / libddcci

Random ideas