Edward Zhu
Home

Projects

  1. 2026

    Typst Local

    GitHub

    A 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.

    • JavaScript
    • Rust
    • Node.js
    • Yjs
    • CodeMirror 6
    • WebSockets
    • Docker
    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
  2. 2026

    Endless Waves

    Open GitHub

    An infinite ukiyo-e seascape in the style of Hokusai, drawn entirely with code. It's the banner on my homepage.

    • JavaScript
    • Canvas 2D
    • Procedural generation
    Details
    • Deterministic from a seed in the URL, so a given #seed is 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
  3. 2026

    Malicious Terraria Mod

    GitHub

    A 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.

    • C#
    • tModLoader
    • Reverse shell
    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
  4. 2025

    Course Registration Server

    A multithreaded server in C that lets many students register for courses at the same time.

    • C
    • Multithreading
    • Sockets
    • Signal handling
    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
  5. 2025

    Interactive Shell

    A Unix-style shell written in C, with built-in commands, custom scripts, pipes, I/O redirection and background jobs.

    • C
    • fork / exec
    • Pipes
    • File descriptors
    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
  6. 2024

    Google Drive RAG

    GitHub

    An end-to-end RAG assistant that answers questions from your own Google Docs.

    • Python
    • OpenAI API
    • Vector embeddings
    • Pandas
    • Google OAuth
    • Google Drive API
    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
  7. 2024

    Twitch Clip Compilation Bot

    GitHub

    Finds the most popular clips on Twitch, cuts them into a single compilation and uploads it to YouTube, with no manual editing.

    • Python
    • Twitch API
    • Selenium
    • FFmpeg
    • YouTube API
    • Google OAuth
    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