Personal Projects

  • QLC+ Scene Importer

    A screenshot of the QCL+ Scene Importer

    Aside from creating things for the web, I also am involved in a bit of improv comedy. Performing has led to me running tech for shows, which includes lighting and music, hosting, etc.

    We use a wonderful piece of open source software at my theatre called QLC+, which allows us to create light scenes, and trigger them using a software panel. Since there are other companies that use the theatre, each one has their own workspace file to contain their own scenes. This process works great, until say a light is replaced and has a different configuration, or one company creates a really good looking scene that another group would like to use.

    In QLC+, there's no built-in way to share scenes between workspaces.

    Looking into the .qxw workspace files, I noticed they were simply XML files. Armed with this knowledge, I built this QCL+ Scene Importer. Select a source and a destination file, then from the source file, select the scenes you want to add to the destination. Give the file a new name at the bottom, and voila!

    View Site

    Technologies Used


    A screenshot of the TinyMenu editor

    2020 is weird, and having physical menus in a restaurant with a potentially frequently changing menu is costly, time consuming, and one more thing your staff has to clean. 

    So I'm building TinyMenu, an easy to use platform for creating, updating, and hosting a digital menu for your restaurant, café, or coffeehouse.

    View Site

    Technologies Used

  • Alex - Figma Plugin

    The text "Alex - Catch insensitive, inconsiderate writing"

    I use Figma pretty frequently when designing user interfaces, and while I don't recommend writing copy in a design tool, sometimes it happens.

    When I learned that Figma's plugin system uses Typescript, I knew I wanted to find something to build.

    Alex.js is a great tool for helping you write considerate, sensitive text. It catches and warns the user against gender favoring, polarizing, race-related, religion-inconsiderate, and other unequal phrasing.

    View SiteView Source

    Technologies Used


    Screenshot of, showing the landing page search box

    GameSearch is a focused search engine for gamers. Search for a game you're playing, then all of your further Google or DuckDuckGo searches are scoped to that game specifically.

    My favorite part of this project is the <ImageTransition> component I built to facilitate fading game images in gracefully throughout the application.

    This project is built and hosted on Vercel (previously called Now) and is automatically rebuilt when commits are pushed to the main branch on Github.

    View SiteView Source

    Technologies Used

  • Tailwind Demos

    A graphic for my Tailwind Demos

    I kept reading about Tailwind.css on Hacker News, Twitter, and Youtube, so I decided to jump in and learn a bit more about it.

    This is a small project where I try to recreate patterns or pages I've seen in various outlets using Tailwind.css and the minimum amount of custom css.

    Currently there's only a recreation of an Apple press release, but I intend on making more of these in the future, as it's a great way to practice.

    View SiteView Source

    Technologies Used

  • Lumina - Game Jam Entry

    A screenshot of the game Lumina, a white cube on a platform with the text Lumina above it

    I've long been interested in video games, and as a former employee at Unity, when this Game Jam was announced, I knew I wanted to get involved.

    A game jam is like a hackathon, but for building games. The theme for this jam was Light, so I decided to put together a little platformer which used ambient light effects, and where the player had to collect light shards in order to progress.

    As it was my first jam, I didn't quite get all of that done, but I did learn a lot. I actually did fairly well competitively, earning 2nd place in the Audio category for the music I wrote and recorded, and 22nd overall, out of 163 entries!

    View Site

    Technologies Used