Projects
-
2026
Typst Local
GitHubA self-hosted, real-time collaborative Typst editor. Run it on one machine and everyone on the network can edit together in the browser, with a live preview.
Details
- Real-time collaboration over Yjs CRDTs, with everyone's cursors and selections shown by name
- Recompiles on every change and pushes only the pages that changed, using a Rust compile engine to keep previews fast
- Version history where every version is a real git commit, so a project's history can be cloned over HTTP
- Exports to PDF, to a Word document styled to match the PDF, and to a source zip
- One setup script for macOS and Debian-based Linux, or run it as a Docker container
-
2026
An infinite ukiyo-e seascape in the style of Hokusai, drawn entirely with code. It's the banner on my homepage.
Details
- Deterministic from a seed in the URL, so a given
#seedis always the same sea - Great waves built from tapering spiral bands with branching claws of foam
- Coastlines, villages, torii gates, ships and mountains placed on jittered grids, so nothing repeats or clumps
- Rendered in cached chunks with woodblock paper grain and slightly off-register ink outlines
- Deterministic from a seed in the URL, so a given
-
2026
Malicious Terraria Mod
GitHubA proof-of-concept Terraria mod that opens a reverse shell as soon as it's loaded, built to learn how a malicious game mod can lead to remote code execution.
Details
- Spawns a reverse shell to a listener on localhost when tModLoader loads the mod
- Never published to the Steam Workshop; it exists purely as a learning proof of concept
-
2025
Course Registration Server
A multithreaded server in C that lets many students register for courses at the same time.
Details
- Built a reader-first reader-writer lock from mutexes to maximize concurrent reads
- Creates sockets dynamically so many clients can connect simultaneously
- Shuts down gracefully on SIGINT through custom signal handling
-
2025
Interactive Shell
A Unix-style shell written in C, with built-in commands, custom scripts, pipes, I/O redirection and background jobs.
Details
- Forks a new subprocess for each job, and can run jobs in the background
- Chains commands with pipes and redirects input and output by rewiring file descriptors
- Runs custom scripts alongside its built-in commands
-
2024
Google Drive RAG
GitHubAn end-to-end RAG assistant that answers questions from your own Google Docs.
Details
- Connects to a user's Google Drive securely through Google OAuth
- Pulls documents with the Drive API and stores their content as CSV
- Embeds each document with OpenAI's Embedding API and ranks them against the query with vector search
- Writes answers with GPT, grounded in the documents it retrieved
-
2024
Twitch Clip Compilation Bot
GitHubFinds the most popular clips on Twitch, cuts them into a single compilation and uploads it to YouTube, with no manual editing.
Details
- Pulls a configurable number of top clips for a chosen time window from the Twitch API
- Downloads the clips with Selenium-based web scraping
- Merges and formats them into one highlight video with FFmpeg
- Uploads the result through the YouTube Data API, authenticated with Google OAuth