TrackGauge (live instance)

Live tracker of the LA Metro (LACMTA) system, modelled after FlightRadar24. Currently supports light rail and subway, buses WIP. Predicted and actual arrival times are available up to 120 minutes in the past and future.
Existing tools like Google Maps do not show live vehicle locations, nor a top-down view of the system. They also make it quite difficult to track an individual vehicle. TrackGauge was developed to answer one question which FlightRadar24 and other plane trackers already answer very well: "There's a train/bus/plane in front of me. Can I learn more about it?"
Built on TypeScript, webpack, Express, Leaflet, and others. Major thanks to LACMTA for providing this data to the public.
Barnabas Blocks (source, live instance)
Web IDE based on Blockly, with TypeScript and webpack. Compiles resultant C++ using waca
and flashes bytecode to Arduino microcontrollers over Web Serial to enable web-only Arduino development. Used for classes at the wonderful Barnabas Blocks.

At left, user-written code pulses an LED at 10 Hz. At right, the equivalent C++ code.
Currently working on support for WeMos boards, which extend the Arduino Uno specification with a networking chip and IPv4/TCP.
waca
, Web Arduino Compile API (source)
A service to compile Arduino code over HTTP. Built on Express and arduino-cli
.
grebe
WIP paired end read sequencing cleanup tool based on Trimmomatic. Supports basic truncations of reads and various ways of handling universal molecular identifiers (UMIs). Built with rust-bio
.
I wrote this just to learn Rust and to beat some lazily written Python code, but it expanded into a viable project. rust-bio-tools
was made by people who actually know log probabilities well, but I know Rust now so I think writing grebe
was worth it.
"from scratch" projects; reimplementing things for learning purposes (i.e. not exactly production-ready)

This website (no link, you're looking at it)
Finally bit the bullet on my decade-long aversion to web development and decided to put this together. Built with Next.js (i.e. React), Tailwind CSS, and TypeScript.
suprkewl-bot

Every 12-year-old's obligatory first big project: a Discord bot. I started in 2019, back when it was way easier to just spin up a bot. I barely knew Python but I got better and ended up writing around 7100 SLOC. Then, Discord changed the whole bot ecosystem and added new requirements, so I switched to a JavaScript Discord library and wrote another 3400 lines before I lost interest.
I used way too many production-scale technologies which, in hindsight, I didn't need for such a small project, but it was good practice. Here's some of the technologies I learned:
- Redis
- PostgreSQL
- SQLite (got bored of it, moved to Postgres)
- APIs: GitHub, Travis CI, NPM, PyPi, Steam, Mojang (Minecraft usernames), Hypixel, rTeX, Open Trivia DB, xkcd