I am an Assistant Professor in the Electrical Engineering and Computer Sciences department at UC Berkeley. Prior to joining Berkeley, I completed my PhD at EPFL in Switzerland and my bachelor’s degree at IIT Bombay.

I am a computer systems researcher, and my work focuses on developing techniques that enable engineers to build systems with well-understood performance and functionality. My research draws on insights from a broad set of domains, including operating systems, networking, computer architecture, and formal methods. My work has received several awards, including the ACM SIGOPS Dennis M. Ritchie Award, the Eurosys Roger Needham PhD Award, and the Dimitris N. Chorafas Award, and several of the systems I have helped design have been deployed in production at companies such as Meta and Alibaba. More details can be found in my CV.

I am always interested in finding talented and ambitious students to join my group! For students already at Berkeley, the best way to contact me is via email. For students seeking to join Berkeley, please refer to the Berkeley EECS Graduate Admissions page and mention my name on your application.

Active Research Directions

Below are a few of my ongoing projects. A full list of my publications can be found here.

Performance Interfaces for Systems SW & HW: Semantic interfaces---such as code documentation and specifications---provide simple, abstract descriptions of a system’s functionality, enabling engineers to reason about and use the system’s functionality without having to understand the implementation. In contrast, there exist no equivalent interfaces for system performance, despite performance having become a first-class citizen in system design.

The goal of this project is to develop techniques that enable summarizing system performance in succinct yet precise interfaces, allowing engineers to efficiently yet accurately reason about a system's expected performance before it is deployed in production. So far, we have demonstrated that it is feasible to realize such performance interfaces for a wide range of low-level systems software and hardware, ranging from packet processing applications [PIX], to low-level systems code such as OS system calls and cryptographic libraries [CFAR], and specialized hardware accelerators for tasks such as deep learning [LTC]. Looking ahead, we are keen to realize such interfaces for large-scale distributed applications and enable efficient reasoning about end-to-end latency and throughput for such applications.
Fast, Flexible, and Practical OS Kernel Extensions: The ability to safely extend OS kernel functionality is a longstanding goal in OS design, with the widespread use of the eBPF framework in datacenter infrastructure demonstrating the benefits of such extensibility. Unfortunately, existing solutions for kernel extensibility (including eBPF) are limited in terms of either the flexibility they offer users or the performance overheads incurred.

The goal of this project is to enable engineers to write fast, flexible, and easily deployable kernel extensions. As a first step, we built KFlex, a framework that significantly improves the flexibility of eBPF extensions in Linux while incurring negligible performance overheads. KFlex is being upstreamed into the Linux kernel mainline and is in the late prototype stage at Meta. Looking ahead, we are keen to further push the limits of kernel extensibility and seek to understand whether kernel extensions can be used to not only modify OS policy but also enable structural OS innovations.
Building Reliable and Provably Correct Systems: I am also interested in improving system reliability using formal and semi‑formal methods. Given the growing criticality of networking infrastructure in modern society, my work in this area has focused on software-defined wide‑area networks, in‑network packet‑processing applications, and network stacks running on end hosts.