A subset of my research projects are described below.

Graduate Work: Nova-OS

NovaOS envisions an ecosystem built on top of emerging storage-class memory technologies (e.g, PCM, Memristors, FeRAM, etc). These fast, byte-addressable, and persistent storage media have the potential to create vast opportunities and widesly disrupt the way systems have been designed for decades. This project explores and classifies several different alternatives, laying the roadmap for future work in this area.

Persistent Process Containers

The PPC-Sifter project was joint work with professors Hank Levy, Luis Ceze, and Dan Ports at UW. It addresses new process models in the face of a largely non-volatile system. It explores ways to handle small incremental checkpoints for rollback and failure resilience, as well as controlling the residual side-effects from applications that crash and impact other parts of the system. The end goal of this project was to create new process and programming models that make it efficient to correctly create recoverable applications on a non-volatile system


The Snapshot/Echo system was joint work with professors Hank Levy, Luis Ceze and Steve Gribble, as well as fellow grad student Pete Hornyack, at UW. As a first step towards making our NovaOS vision (above) concrete, we designed, developed, and evaluated a new storage system to act as a building-block technology for operating systems built on SCM. Snapshot is a versioned key-value store for non-volatile memory technologies. It targets massively-mulitcore machines with a single level of storage (PCM). Our evaluation showed that the the design was effective at providing scalability as well as supporting a variety of value and transaction-size granularities.

Undergraduate Work: Security

Virtual Containers on Demand

Virtual Containers on Demand (also Virtual Container Attestation) was my senior thesis, completed with advisor Sean Smith. The work delved into zones (virtual machines) on OpenSolaris, and used their isolation in combination with a number of analysis tools to create safe and isolated environments for remote execution. To add additional levels of security, the project used Trusted Platform Module hardware to tie the execution to safe states. This project was ultimately successful in implementation, although there were a number of issues with drivers and software. (Completed at Dartmouth College).


TwoKind was a project to increase the effectiveness of password protection on accounts, even when compromise was expected. By adding an additional password to each account, for use in untrusted situations, we found that it was possible to keep all vital information on the server and not release it, even were compromise to the password or the session to happen. Although users expressed interest in increased flexibility, they were generally receptive to the idea, and the passwords themselves were effectively used. (Completed at Dartmouth College.)