hover or tap a title for details.
-
PBFT (Castro & Liskov, OSDI '99) built from scratch in Go. Three-phase consensus with automatic view changes, primary-side batching (16× consensus compression), and crash recovery via signed state transfer. Speculative reads bypass consensus using Byzantine quorum intersection — 18× faster than writes. Shard transfers secured with 2f+1 threshold certificates, an extension beyond the original paper. Ships an interactive terminal dashboard and benchmark suite.
-
Distributed MapReduce in Go with a worker–manager architecture. Multi-goroutine coordination over channels and wait groups drives parallel map/reduce distribution, automatic worker-failure detection with job reassignment, and RPC-based IPC. Idempotent operations keep results correct under network failures and crashes, with clean goroutine termination and no memory leaks.
-
Fault-tolerant key-value service in Go backed by Paxos for replicated log management across server groups. Concurrent Paxos instances per log slot (prepare / accept / inform), automatic proposal-number generation with conflict resolution, garbage collection of forgotten entries, and linearizable consistency. Layered design separates consensus, the replicated state machine, and the KV application.
-
Replicated key-value store in Go using primary–backup replication behind a centralized view service. At-most-once Put / Append / Get semantics, automatic primary promotion and backup initialization across failures, and state-transfer protocols that hold consistency through view changes. Concurrent request handling via lexical confinement and channel-based synchronization.
-
Concurrent, crash-consistent network file server supporting multiple users with nested files and directories. Crash consistency via committing writes; concurrency tuned with Boost threads and reader–writer locks; client–server communication over POSIX sockets.
-
Kernel-level C++ threading library on Unix managing CPU bootup, thread lifecycle, and scheduling across multiple CPUs. Implements spin-locks, mutexes, and condition variables using non-trivial Unix context-management techniques.
-
Virtual memory pager supporting multiple processes with swap-backed and file-backed pages. Handles process creation, page faults, MMU bits, fork, and destruction — with copy-on-write optimization.
-
Webring connecting UMich students' personal websites — collections of sites that link to each other, forming a connected community. Inspired by the UBC Webring and The Waterloo Ring.
-
An interactive particle simulation of ducks and a digital synth. Try it out.
-
Past version of my personal website. Very cool design in my opinion, but got tacky for my taste.
-
My friend Arnav ALWAYS arrives later than he says he will. I made this so I know when he'll actually arrive. Made with love.
-
Love Notes for the Michigan Daily! I worked on scripts for the site that sent emails to people who got love notes.
-
Updates a repo with the daily NASA picture.
-
Chrome extension built at MHacks 2023 that analyzes website tone to recommend matching music via the Spotify API, using Python NLTK and beautifulsoup4. Created by Mason Miller and I.