He received his PhD from Carnegie Mellon with a thesis on model checking for timed systems, advised by Ed Clarke and was then a postdoctoral researcher at the University of California, Berkeley. His research interests are at the intersection of software analysis, testing and security, where he has led several research projects. He is teaching courses on verification and security, enjoys using live coding in programming classes and has designed a discrete structures course that uses functional programming.