Submitted patches for many bugs including ones that have been around for eleven years and have affected hundreds of thousands of people.
A path tracing renderer capable of rendering photorealistic images. Supports a physically based BRDF, texture/normal mapping, area lights, glossy reflection, anti-aliasing, DOF, CSG, fractals, portals and much more.
A fast high quality syntax highlighting library in Rust based on Sublime Text 3’s grammars. Well documented and tested, with active contributors. Powers two commercial products parsing terabytes of code per day.
An LLVM based compiler for Turing as well as a Qt-based IDE and a simple drawing library. Made when I was in grade 10.
I built a working keyboard I created with AutoCAD, laser cut acrylic, custom firmware, and soldered electronics.
I reverse engineered my Eye Tribe tracker’s USB protocol by scripting LLDB to capture their USB messages and implemented a glint and iris tracker on the raw image feed suitable for high accuracy eye tracking.
An IOS app for long term personal finance simulation with 7000 users. Has a custom built UI that instantly updates a visualization of your entire life’s financial future while you manipulate inputs.
I made a Rust library that can fork a Linux process onto a different computer by streaming all the memory mappings and register state and using ptrace trickery to recreate it.
I made a font that makes it easier to read large numbers by putting fake commas into them or underlining alternating digit groups using font shaping.
I figured out the Unity binary assets file format used by the game Beat Saber on the Oculus Quest VR headset and wrote a patcher in C# that can add custom songs to the game. It was incorporated into SideQuest and used by over 80,000 people.
A Rust web app for finding spurious correlations in 390,000 time series data sets. I wrote custom optimized DOM, JS Canvas rendering, caching, correlation and binary serialization code for instantly responding to queries.
I extracted the link graph of Wikipedia into a 600MB binary file with a custom format designed for fast path finding in memory. I’ve rewritten the path-finding server in Rust, Nim and D for fun.
I write articles for my blog including write-ups of engineering experiences and reverse engineering stories. Some of my articles have made it to the top of Hacker News.
I made a compiler from a substantial subset of Java to machine code along with 2 teammates for UWaterloo’s CS444 compiler class. I wrote about how our design decisions lead to it being less code than some other teams approaches.
An implementation of a webcam pupil tracking algorithm in OpenCV that garners weekly emails from researchers and 30,000 views per year. It is the first hit on Google for “OpenCV eye tracking”.
An ultra-fast lightweight Markdown viewer written in Rust with GPU rendering by Webrender. Uses a custom document model, styling and text layout to start up and load enormous documents in 0.5s with 60fps scrolling.
Simulation of the Canadian electorate in the form of a game. I generated the map of 30,000 simulated citizens using real polling and demographic data.
Contributed many layers and fixes to the Spacemacs Emacs distribution. I was the First contributor and a long-time top contributor.
A tool for generating PNG images that show one thing in thumbnails and a different thing in another. Exploits some PNG implementations implementing gamma correction and some not.
A tool written in Go which takes in a static site, scales the images down to a number of different sizes, optimizes them, then rewrites all of a site’s HTML to use responsive image tags. It’s fully incremental and configurable.
My CS 246 final assignment: A chess engine with all rules, graphics, 5 levels of A.I and human players implemented in 15 hours and 993 lines of code. This is half the lines of code and less than half the time most of my classmates needed. The code is quite readable, the small size was achieved through clever design.
IOS apps developed in 2010 on contract for a professor at Carleton University for performing common psychological tests. I was paid to develop the apps but retained the rights to the code and to sell them.
Finds Git repositories on your computer and lets you quickly switch to them, list them, and run commands on them. A small project, but a useful one with thousands of users.
The world’s fastest rendering engine for emoji and only emoji. Uses instanced mip-mapped point sprites with no overdraw to render 90k emojis at 60fps in a browser using WebGL. Made for TerribleHack X.
I’ve contributed 3 different modules for the Hammerspoon window manager: one can add tabs to any OSX app, one allows switching to any window with two keystrokes, and one allows scrolling down by saying “ssssss”.
A fork of ranger (a command line file manager) with support for inline images on OSX, file icons, drag and drop, OSX trash, and more enhancements.
A small batch of one button keyboards with RGB LEDs that can type a keyboard shortcut and can have their colour controlled by the blink(1) protocol.
Select any text on screen with Vim keyboard navigation. Uses computer vision on screenshots to locate text.
My grade 9 programming class (a grade 11 class, I took it in grade 9) final project: a Turing interpreter written in Turing, including a GUI.
Two hour hack with JS Canvas that made it to the front page of Reddit via /r/InternetIsBeautiful. It makes some LCD screens emit a tone.
Low-latency high accuracy audio recognizer for mouth noises. Written for my HCI research and later used for hands-free OSX scrolling as a Lua module
Uses a Tobii 4C and a TrackIR 5 with software written in Rust to combine gaze and head tracking into a fast hands-free mouse.
Uses OpenCV to accurately and quickly track a pink dot on a microphone headset with a 60fps webcam for precise fast optical head tracking.
A weekend project to build a head tracking mouse using a 9DOF IMU (basically an orientation sensor) connected to a microcontroller in a 3D printed case.
Built a box using a Teensy microcontroller to allow me to use $5 tattoo machine foot pedals with my computer.
Generates slides as you speak using the Google speech-to-text API. Made for the TerribleHack hackathon.
Renders directly from UDP packet buffers to the screen for the lowest latency by taking advantage of shared memory on integrated GPUs. Made for the TerribleHack hackathon.
Explore an overview of a codebase by rendering every character as a tiny syntax highlighted dot. Written with Rust, syntect and gfx-rs.
Generates high quality portmanteus linking two words using a graph search. Made for the TerribleHack hackathon.
Python program to convert images to massive piecewise functions that show the image when plotted. Outputs images with matplotlib and giant LaTeX PDFs of the functions.
A web app for doing common calculations related to normal distributions. Nice minimal UI that updates calculations as you type and saves the state in the URL so you can link others to it.
A DBus library for the D language. Uses compile-time introspection to generate efficient calls without a separate code generation step.
An RSS feed of the comments of a bunch of interesting Hacker News users, nicely formatted.