Dev / /

I remember, quite vividly, a moment during a tutorial by Dr. Martin Parker at the University of Edinburgh on the topic of programming digital instruments in Max/MSP. Dr Parker had an obscure interactive video game controller (something like the failed predecessor to the Nintendo Wii with retractable strings for controllers) which he had hacked in order to get input in Max and over the course of 20 minutes turned it into a playable electronic instrument. The instant he made the last connection in the patch and pulled the string of the newly minted instrument, I was struck with a moment of “Oh my god, I could do anything.”

That feeling of limitless potential is what excites me most about software development; the question “Could this be done?” replaced with “How could this be done?”.

Below is a sampling of personal projects I've worked on in the past year. While most of the work represented below is written in javascript, I also have experience with other languages (PHP in particular) as well as modular environments, such as Max/MSP and Reaktor.


A real-time multiplayer game made from a Harry Potter themed card game. My friends and I created the card game a few years back and creation of a digital version was motivated by the COVID-19 lockdown and the desire to play the game remotely.

The site is hosted in a flexible App environment on Google Cloud. The game functionality is handled by React and synced to the other players via socket.io and backed up to a mongoDB database to allow for page reloads or to let players stop and resart the game at another time.


A javascript-based music video for my newest Duke of Norfolk release, January / Eden, Come Slowly. When I was scheming ideas for a music video, I had the thought of avoiding a fixed medium because I liked the idea that it could look a little different every time you watched it.

I animated the bulk of the js-based video with Adobe After Effects then exported it for use in js with bodymovin / lottie. I used HowlerJS to play, seek, and keep track of the audio file.


A prototype of a word generating tool to help novelists in creating words for fictional languages. Inspired by a conversation with a linguist / novelist friend.

All generated words are associated with your ip address and the minute of generation in a MongoDB database to allow for users to look back at words they've made over the course of that day.


A script for Adobe After Effects which facilitates project templating. Once a template is setup with specific tags, the script allows you to fill out the template using a quick form and directly export the video to be rendered.


A quick test, powered by Sound Exchange, of an idea for creating and playing near-unique versions of a recording.


While preparing for the release show of Portland-based Alexandra’s latest album, Ecdysis, we wanted to be able to sample a vocal part on the fly and couldn’t find an existing plugin that would do what we needed it to. So I used Native Instruments’ modular programming environment, Reaktor, to build a synth that would allow for real-time sampling and playback.