I'm a computer science graduate student at Columbia University; I currently work at Databricks on the Delta team. I previously worked at Amazon in Alexa’s Natural Language Understanding Engine team. In recent news, I've picked up functional programming, attempted writing Linux device drivers in Rust, and partially implemented a NES emulator on an FPGA. In my spare time I enjoy fishing, backpacking, climbing, (really anything outside), and learning new things (currently trying out Coq!).
My site currently uses CSS media queries to render in either light or dark mode. If you would like to see the other, just toggle your operating system's preferences. (I hope to implement a lightweight manual toggle for this sometime soon!)

Projects

Rust Device Drivers

My team investigated the possibility of using Rust to write Linux device drivers as our Advanced Operating Systems research project. [paper]

ultraNES

I led a team to develop a Nintendo Entertainment System emulator implemented on a DE1-SoC FPGA. The system is a hardware emulator implemented in SystemVerilog, but it communicates with the onboard HPS running Linux in order to load ROM's and debug the system. It's still a work in progress but I'll be releasing the source soon.

Smoothed Particle Hydrodynamics Solver

I developed a parallelized two-dimensional smoothed particle hydrodynamics simulation in Haskell. The solver loosely implements Muller et al.'s "Particle-based fluid simulation for interactive applications." It realized a 5.13x speedup on 6-core CPU. I ported this to Rust and I'm hoping to set up a WebAssembly demo as well. [paper]

Live Waitqueue

I TA'ed for a number of courses while I was in undergrad and grad school and noticed that I often wished for a better means of queuing students during my office hours. One weekend, I threw together a web app (and accompanying admin CLI) for queuing students for my office hours. It uses the Rocket web framework and Server-Sent Events for real-time updates. [source]

League-a-lot

Have you ever wondered how much League of Legends your buddies play? Same. I made a web app in Go to find out. [source]

Student Reviews Visualization Web App

In an effort to make students' reviews of professors more accessible (there were large reports released by our institution which were indigestible), we made a web app to aggregate and present public student reviews in accessible visualizations. Shared project with Sam Jett and Joe Lovoi. [Seeking maintainers/contributors, email contact@evals.info if interested!] [source]

Backhub

Most of my projects are hosted on Github, so in an attempt to not rely too much on a single point of failure (or control), I made this application to backup all Github repositories to a local disk. I keep a two hard disks in RAID 1 on my home server, and run this program a cron job to continuously backup all my repositories from Github.

Intrastellar

For a project during my undergrad, I created a retro space-shooter video game on an NXP LPC1769. It used a Playstation 2 controller and 7" LCD Display via SPI. The LCD Display relied on an Adafruit Display Driver (RA8875) and a heavily modified version of the accompanying Adafruit C++ library. [poster][paper]

Development of a Low-cost Electrocardiogram

I worked on a project to build a low-cost electrocardiogram. It was an analog system - essentially just cascaded filters to generate the final waveform. [paper]

Time-Series Prediction

I developed a time-series prediction algorithm for cryptoasset value momentum forecasting for my final project in CS5043, Advanced Machine Learning, at OU. It won third place in the poster presentation competition at the Artificial Intelligence and Machine Learning Symposium at OU. [poster]

Polarized Spatial Frequency Domain Imaging

For my mechanical engineering capstone project, our team developed a polarized spatial-frequency domain imaging system capable of measuring collagen fiber alignment and orientation in organic tissues. [poster]

Analog Battle-bot

In an (awesome) class competition to create analog battle-bots, I created the class' champion robot. With only analog electronics, it successfully pushed all of its opponents off a small battlefield. [video]

Teaching

Operating Systems Teaching Assistant

I was awarded a Teaching Assistant Fellowship for a graduate-level operating systems course focused on Linux kernel hacking. My contributions included developing automated grading infrastructure, some of which relied on nested virtualization to automatically compile students' kernels, run tests, and gracefully crash/report.

Programming Languages and Translators Teaching Assistant

I was a Teaching Assistant for a graduate-level compilers course with major programming assignments hacking on LLVM. This included various focused on teaching compilers, programming languages, and program analysis through hacking on the LLVM infrastructure. Students implement new pieces of Clang/LLVM compiler.

Real-time Embedded Systems Teaching Assistant

Teaching Assistant for junior-level class focused on a semester-long hovercraft project comprised of embedded control for custom hovercraft vehicle frameworks. Students built and programmed a semi-autonomous robot reliant on PID control for accomplishing various tasks/challenges.

Open Source

I have made a handful of contributions to open source projects, mainly in the realm of tooling, systems software, etc.

Notes

Archive