Recent Publications

Despite decades of research and practical experience, developers have few tools for programming reliable distributed applications …

Conflict-free replicated data types (CRDTs) are a promising tool for designing scalable, coordination-free distributed systems. …

This paper proposes a new type system for concurrent programs, allowing threads to exchange complex object graphs without risking …

Nearly twenty years after the launch of AWS, it remains difficult for most developers to harness the enormous potential of the cloud. …

Programming efficient distributed, concurrent systems requires new abstractions that go beyond traditional sequential programming. But …

Cloud computing services often replicate data and may require ways to coordinate distributed actions. Here we present Derecho, a …

Programming concurrent, distributed systems is hard—especially when these systems mutate shared, persistent state replicated at …


Awards and fellowships

  • NDSEG Fellowship (2015)
  • NSF GRFP Honorable Mention (2015)
  • Cornell CS Department Service Award (multiple, latest 2020)
  • Senior Prize in Computer Science (2013)
  • Rose Rosengard Subotnik Prize (2012)



We’re building new languages for safely programming with shared mutable objects. In our work, threads can freely exchange mutable objects and manipulate state concurrently—with no possibility of a destructive data race.

The Hydro Project at UC Berkeley is developing cloud-native programming models that allow anyone to develop scalable and reslilient distributed applications that take full advantage of the elasticity of cloud infrastructure. Our research spans across databases, distributed systems, and programming languages to deliver a modern, end-to-end stack for cloud programming.

Gallifrey is a new programming language for distributed wide-area applications. Gallifrey programs share state via replication, granting fast access to data without introducing mandatory synchronization points, all while maintaining sequential consistency by default. Gallifrey aims to be easy-to-use, requiring a minimal annotation overhead atop an otherwise Java-like language.

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 rein in weak consistency and capture replication and concurrency, all while constructively avoiding races and allowing safe, loosely-synchronized replication.

Derecho is a new framework for building replicated, fault-tolerant distributed systems within a datacenter. It provides a best-in-class consistent multicast abstraction, and is easy to use via user-defined replicated objects and RPC.

Technical Reports

More Publications

The coming generation of Internet-of-Things (IoT) applications will process massive amounts of incoming data while supporting data …

Recent Talks

Building a syllabus for a semester of undergraduate research.

Presenting a new type system for Fearless Concurrency

Presenting a new type system for Fearless Concurrency

Learn about Derecho, and build a sample ML application with it!

An intelligent object store built in Derecho, optimized for AI at the IoT Edge

Presenting Gallifrey, a new Java-like language for wide-area distributed programming

Presenting Gallifrey, a new Java-like language for wide-area distributed programming

Presenting MixT, a domain-specific programming language for mixed-consistency transactions

Recent Posts

My dissertation is now available here

Presenting MixT, our language for sanely mixing distinct consistency levels within a single transaction. Now in Tech Report form!


CS 294-170: Graduate Seminar: Programming the Cloud

The public clouds are the most powerful general-purpose computers ever assembled, allowing individuals to rent their power at unlimited scale, on demand. This makes “the cloud” the biggest game-changer in computing access since the adoption of the PDP-11 minicomputer in the early 1970s. However, unlike the advent of UNIX and C for PDP-11, an organic programming model has yet to emerge for the cloud. History suggests that the real innovation on new platforms comes when the right programming model is introduced.

The challenge of helping developers program the cloud spans areas: Programming Languages, Distributed Systems, Databases, and Operating Systems, to name a few. In this seminar we will read research papers together, and bootstrap new efforts in this area.

CS 2043: Unix Tools and Systems

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.

CS195r: Compilers

Compilers are a subject fundamental to Computer Science, helping bridge the gap between a program’s abstract semantics and the target machine’s capabilities. In this course, we follow Andrew Appel’s curriculum to design and build a compiler from scratch, in a radically collaborative and open-ended environment.


Professional Service


  • CCF: Member of the selection committee
  • *SIGPLAN-M: Mentor since 2020
  • SPLASH (2013,15-16): Instructor at SPLASH Cornell and MIT, lecturing on video game music

  • EYH (2014-19): Workshop leader and designer at Expanding Your Horizons, a one-day workshop aimed at encouraging middle school girls to embrace STEM topics.

  • Elementary School Instructor (2014): Instructor of a day-a-week course following the CodeAcademy curriculum in Belle Sherman Elementary School in Ithaca.