[ ⊥ TEXT ]

I’m a computer science PhD candidate at Columbia University, advised by Stephen Edwards. I previously graduated from Columbia College in 2018 with a BA in computer science and music.

I completed my thesis proposal in December 2023 and am aiming to defend sometime mid-2024. I’m on the job market for industry positions that will engage my research experience and interests.

You can reach me via email at .


My interests broadly revolve around the use of high-level programming languages to configure and extend interactive, low-level systems. Such systems include embedded systems, operating systems, browsers, game engines, and text editors.

My current research focuses on extending such languages to support building temporal abstractions for reactive real-time computing. I am working with Stephen Edwards on the Sparse Synchronous Model, a programming model for microcontroller platforms with precise timing prescriptions and deterministic concurrency.

In Summer 2023, I interned at Roblox Research, where I worked with Alan Jeffrey on a research prototype of the Roblox game engine.



In Fall 2022, I taught COMS 3157: Advanced Programming, an introduction to systems programming with a narrative.

I’ve also been a teaching assistant for the following classes at Columbia:



I love tinkering with terminals and text editors, and am the author of fidget.nvim, an extensible UI for Neovim notifications and LSP progress messages.

Once upon a time, I composed music for humans, but nowadays I primarily produce music for computers when I have time. I was also Music Director for my college a cappella group, the Columbia Kingsmen. Some day, I’ll build programming languages for music production.