Hi! I’m a PhD candidate in programming languages and systems at Cornell University, advised by Andrew Myers. My work focuses on programming languages and abstractions for wide-area or large-scale distributed systems; really anything where the round-trip latency for communication is way too high. I’m working on programming replicated, distributed systems with Andrew Myers, and also working extensively with Ken Birman and the Derecho group.
PhD candidate in Programming Languages and Systems, 2020
MS in Computer Science, 2017
ScB in Computer Science and Music, 2013
Distributed Languages frequently either fail to capture replication, or insist in high-latency lockstep state machine replication. Storage systems which avoid both pitfalls often do so by weakening consistency. We try to reign in weak consistency and capture replication and concurrency, all while constructively avoiding races and allowing safe, loosely-synchronized replication.
Avoiding communication while building a high-throughput, RDMA-based distributed framework for replicated systems
Courses I’ve taught or developed
UNIX and UNIX-like systems are increasingly being used on personal computers, mobile phones, web servers, and many other systems. They represent a wonderful family of programming environments useful both to computer scientists and to people in many other fields, such as computational biology and computational linguistics, in which data is naturally represented by strings. This course takes students from shell basics and piping, to regular-expression processing tools, to shell scripting and Python. Other topics to be covered include handling concurrent and remote resources, manipulating streams and files, and managing software installations.