Projects
Labs
Labs is a collection of small UI experiments and concepts. I find that implementing and expanding on UI patterns I've seen helps me identify details that weren't obvious at first glance.
Falling Block Puzzle Game
I paired with ChatGPT (GPT-4) on making a clone of one of my favorite childhood games, Tetris! It took some nudging and back and forth, but I'm pretty pleased with how this turned out. I learned a lot about how Tetris is implemented and the subtle (but important!) differences between versions of the game.
Radiant Diamond
I saw this amazing demo of refraction in React Three Fiber and had to try it for myself. Works best in Safari.
Personal Website v3
The third major iteration of this website, updated with a new technology stack to support a personal blog. If you want, you can still view the previous version.
This is my playground to experiment with new technologies and build smaller apps. Check out this stopwatch and this map of restaurants in San Francisco.
Custom Discord bot
I created a custom Discord bot for the private server I hang out in with some of my close friends. It's highly specific to how we interact in the server — mostly inside jokes and silly memes.
It's built with Discord's Message Command and Slash Command APIs.
Digestif
Digestif shows me the most-liked Tweets from people I follow. It makes it easy to discover new Tweets or see what's going on at a glance. It started as a web app hosted from my Raspberry Pi, accessible only on my home network. Later, I made it post the best Tweets to my Discord server once a day.
OK.css
OK.css is a classless CSS framework that adds sensible styling defaults to your web page. It's featured in this collection of minimal stylesheets.
Chinese Flashcard App
I've been learning Chinese, but wanted a more efficient way to review new vocabulary words. I shared a small prototype of what the frontend could look like in SwiftUI, and made some progress building a cross-platform client with React Native. As part of this project, I also researched spaced-repetition algorithms and local-first apps.
YouTube Silence Skipper
This is an experimental Chrome extension that shortens silences on YouTube, inspired by a similar feature in popular podcast apps. It works by sampling the loudness of the video and increasing the playback rate when the loudness drops under a pre-defined threshold.
Tech Talks
Tech Talks was a place to discover and watch conference talks about web development. I had collected thousands of talks from a number of JavaScript conferences from 2017 through 2019 by looking up their associated conference playlists on YouTube. This project is no longer being actively developed.
Raspberry Pi Kiosk
I connected my Raspberry Pi to a display that shows the current time, news, stocks, and weather. Then I posted about it on Twitter.
Aurora
Aurora is web-based synth that can be played with a computer keyboard and MIDI keyboard (Chrome only). It was inspired by professional software synths like Sylenth1, Massive, and Serum. I wanted to make exploring audio synthesis accessible and fun!
Wi-Fi LED Lamp
Inspired by the Philips Hue and the LIFX bulbs, I created a lighting solution that can be controlled by a web browser and can be customized with software.
Made with Spark Core, IKEA Vidja lamp, and Neopixel light strip.
Algorithmic Music Generator
For my final project in my Computers and Music class, I wrote a program that generates music based on user input (key, tempo, etc.) and rules from classical music theory.