My Ph.D. work focuses on EXE, a dynamic bug-finding system based on the observation that code can generate its own (potentially highly complex) test cases. EXE was applied to a variety of real systems code (the Berkeley Packet Filter, Linux file systems etc.) and it found bugs in all of them, together with the actual inputs generating these bugs. We published three papers on EXE: an overview paper where we introduce the key idea behind EXE and a primitive prototype implementation called EGT (Cadar and Engler, SPIN 2005), an application paper where we use EXE to find bugs in file systems code (Yang et al, IEEE Security 2006), and our most recent paper (Cadar et al, CCS 2006) where we give a more comprehensive introduction to EXE and its constraint solver STP.
Previously, I received a Master of Engineering degree in Electrical Engineering and Computer Science from MIT, under the direction of Prof. Martin Rinard, when I was involved in the Failure Oblivious Computing project (Rinard et. al, OSDI 2004) and the Archie Error Localization project (Demsky et. al, WODA 2004). I received a Bachelor of Science degree in Computer Science, and a Bachelor of Science degree in Mathematics, also from MIT.
