I build flexible and high-performance computer networks that meet the needs of the developers, operators, and users of emerging applications and networks. I take a full-stack approach, developing novel languages, compilers, algorithms, operating system designs, and hardware designs. My current research projects include designing a compiler for network hardware offload, verified network stack programming, and real-time distributed system monitoring.