Skip to main content

Projects

These are some of the projects I’m most proud of.

rittorrent

My friend and I implemented a BitTorrent client in Rust 🦀. We wrote our own HTTP/1.1 client, file I/O logic, peer communication, thread coordination, and event loop. Our client can interoperate with mainstream BitTorrent clients, and achieved similar peak performance to qBitTorrent in our testing.

I extended a path ray tracer to account for Einstein’s special theory of relativity, which describes what happens when objects move close to the speed of light. The technique is loosely based on a 1990 paper; each object in the scene is given its own reference frame, and ray intersections are sorted according to their times in the observer’s reference frame at each ray bounce. As part of this project, my friend also accounted for the Doppler effect.

My friend and I extended the traditional suffix-array string search data structure to work in the minimizer space, searching for sequences of minimizer k-mers rather than directly searching for the target sequence. We wrote a prototype in Rust 🦀 and implemented an acceleration technique based on piecewise linear regression to shrink the binary search space at the start.
Technical Report 📖

After 5 iterations, I got code upstreamed into the QEMU emulator to allow user customization of the grab toggle keys for the evdev input driver. This was my first open-source contribution, and felt quite good 😇.