Hi. I build things.

I've been building open source projects since 2011, and I enjoy building things that I find interesting and useful to me. Sometimes these projects are useful to other people too and have gained popularity, and sometimes not. I mostly build for myself though so that I can learn something new.

Below is a sampling of projects that I have built that I think are interesting. For the full list of what I've built, visit my GitHub profile.

Raspi IO is a Firmata API compatible library for Raspbian running on the Raspberry Pi that can be used as an I/O plugin with Johnny-Five.

Raspi IO is built on Raspi.js, which I wrote to make it easier to work with hardware on the Raspberry Pi in a consistent way across disparate peripherals.

A wirelessly distributed lighting control system for programmable LED art.

For this project, I created a pair of custom boards based on the ESP8266 that controls WS2812b 5V LED. A board in "control" mode syncs patterns to all boards in "receive" mode, with millisecond accuracy.

A system for controlling the lights, monitoring temperature, and logging cleaning and water testing in my aquarium with a Raspberry Pi.

This system has a React.js web UI for controlling the lighting, backed by Node.js on the Raspberry Pi.

A desktop application for scheduling times to reach out to folks regularly that plays nicely with my anxiety.

The app is built in Electron.js, and remixes common UI patterns around notifications to make it more effective and less anxiety enducing.

A prototype request timing diagnostic tool for Web and Node.js applications.

A statically typed, backwards compatible dialect of JavaScript.

An old experiment into how we could get static typing into JavaScript without new syntax. No longer under development.

The source code for the firmware part of my dissertation project.

For my dissertation, I created an interconnect protocol based on SPI for creating clusters of DSPs to perform parallel computing using MPI