I am an Associate Professor in the Computer Science Department of Drexel University's College of Computing and Informatics. I am currently Editor in Chief of ACM Transactions on Programming Languages and Systems.
I am interested in finding new ways to improve software reliability, especially providing strong static guarantees about program behavior, for concurrent and systems-level code. My work has focused on formal verification of concurrent programs using static reference capabilities and effect systems, though I'm also interested in other levels of formal assurance, programming models, distributed computing, and even testing. Right now I'm working on effect systems to reason about partial program correctlness, full formal verification for operating systems kernels, and tools to connect natural language to machine language (code and formal specifications). See my publications page for more details.
If you are interested in working with my on research, please see my advice for prospective students page, which describes how what I look for in PhD students, as well as how undergraduate or MS students already at Drexel can get involved in research with me. After reading that page, consider joining the Programming Systems Seminar.
Previously I've been a Senior Research Engineer at Samsung Research, a PhD student at the University of Washington, a software developer in Microsoft's Midori operating system kernel group (later doing compiler work with the team), and much longer ago an undergraduate at Brown University, an intern in the Solaris Kernel Group at Sun Microsystems, and an intern in one of the filesystem groups at NetApp.