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. These days I mostly build open source projects for myself 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
A library for working with bootstrap data in multi-page applications with differing bootstrap data
I created this library after struggling to implement easy-to-use data access mechanisms for bootstrap data that <em>also</em> provided safety mechanisms to prevent accessing data not intended for the current page.
A demo to explore using Jotai, Next.js, and my own library React Strapped together in a single application. This demo is written twice: once using Next.js' new App Router paradigm, and again using the older Pages router paradigm.
I created this library as both a way to learn about React Server Components and to vet/polish my React Strapped library
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.
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 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 statically typed, backwards compatible dialect of JavaScript.
A very old experiment into how we could get static typing into JavaScript without new syntax. No longer under development since TypeScript came to popularity.
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