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.

A wirelessly distributed lighting control system for programmable LED art.

RVL is an ecosystem of hardware and software I desgined for building LED art pieces and fun home lighting. Here's a video of an art piece I designed with it at Burning Man 2019

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 library that makes it easier to manage boilerplate and reason about React Redux applications

I created this library after watching folks struggle to learn Redux. In my experience, this struggle usually comes from the Redux API obscuring the Redux concepts with unecessary boilerplate.

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