My research interests include storage system consistency, performance,
More broadly, they span systems, programming languages, and theory.
Projects and software
- BPFS. A file system that provides dramatically stronger durability and consistency guarantees using byte-addressable, persistent memory – in particular, phase change memory – and careful design.
- Featherstitch. A storage system built around explicit disk write dependency tracking. (Also, a fun reason to play with large graphs in operating system kernels.)
- Libprefetch. New file system prefetching techniques and interface that increase many nonsequential disk read throughputs by 5–20x.
- scord. Reduces the disk space used by a subversion working copy with large and/or many files.
- mswatch. Keeps two mailboxes synchronized more efficiently and with shorter delays than periodically synchronizing the two mailboxes over IMAP.
- JPred. Practical (modular and typesafe) predicate dispatch in Java.
Spanner: Google's Globally-Distributed Database
(OSDI 2012, Best paper)
- James C. Corbett, Jeffrey Dean, Mike Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, and Dale Woodford
- Improving File System Consistency and Durability with Patches and BPFS (Ph.D. dissertation, 2010)
- Better I/O Through Byte-Addressable, Persistent Memory (SOSP 2009)
- Reducing Seek Overhead with Application-Directed Prefetching (USENIX 2009)
- Expressive and Modular Predicate Dispatch for Java (TOPLAS, February 2009)
- Generalized File System Dependencies (SOSP 2007, Audience choice awardee)
- Modularly Typesafe Interface Dispatch in JPred (FOOL/WOOD 2006)
I'm a software engineer at Google, developing distributed storage software. Previously, I completed my Ph.D. in computer science with the TERTL group at UCLA, where I researched storage system consistency, performance, and usability, alongside our turtles. More broadly, my interests span systems, programming languages, and theory. I was also a member of the LUG and the ACM and TAed CS 111 (undergrad operating systems) for 2005–2006.
Outside of the lab, I enjoy biking, running, hiking, and backpacking; photography; and spouts of reading.
My undergrad days were at UVa, where I frolicked and schemed with friends in Theta Tau, ACM, Math Club, Brown, Honor, and the computer science and math departments. I've helped lasso computer science problems and systems while at UCLA, UVa, MIT, Microsoft Research, VMware, Google, Appian, Microsoft, Dynetics, and the US Army AMRDEC. Home is Huntsville, Alabama.