I'm broadly interested in the interplay between programming languages theory, systems (particularly of the distributed variety), and software engineering. My research is focused on using programming languages abstractions to come up with better ways to build and reason about distributed systems- a notoriously challenging task. I believe these verifiable abstractions are key to building reliable, scalable, and maintainable systems for the future.
I'm currently working on Grove with Prof Cyus Omar at the Future of Programming Lab. Grove is a CRDT-based collaborative structure editor calculus with well-defined static semantics, that reimagines how version control and collaborative editing can be built using PL techniques to eliminate hueristics like the 3-way diff-and-merge. Instead, we add conflict holes , which lets us statically reason about conflicts while not interrupting editor services or marking false-positive conflicts where changes to code are morally independent (e.g adding a parameter and renaming a function and many more...). Grove also enjoys total type error localization and recovery à la the marked lambda calculus (Zhao et al., 2024). Click here to check out our accepted POPL '25 submission.
I'm always looking for new opportunities to collaborate, so if you have any interesting projects or ideas you'd like to discuss, you can reach me @✉️