I love thinking about programming, exploring ways to understand programs, developing new paradigms for writing programs, and helping students understand programs. I am currently a visiting professor in the CS department at Haverford College, where I mentor students, teach courses, and do research. As of summer 2019, I will be an assistant professor in the Electrical Engineering and Computer Science department at Syracuse University. I am always looking for motivated undergraduate, masters, and doctoral students to work on research in programming languages (specifically static analysis) and security. Feel free to email me!
My goal is to keep users secure as they use modern systems. This is a challenging problem. Writing secure code is hard. Checking untrusted code is even harder. Developers are not always incentivized towards security. In some cases it is not always clear what security even means.
For example, consider an app that shows users nearby coffee shops frequented by their friends. Such an app may leak or store the user’s location (e.g., to an ad provider) in a way they do not intend. Sometimes, the developer is not even aware they are violating the user’s privacy (for example, if the developer uses an ad library and they are unaware it collects location data). Even if the developer is aware of how location is being collected, users may not assume that it is being stored permanently. You can look at some of my recent publications to get an idea of the projects I’m currently working on to help solve these problems.
To help achieve this goal, I use techniques from the following areas:
Areas I work in
I am lucky to have a great set of collaborators, many from the PLUM lab at the University of Maryland, but also at the University of Alabama, Vermont, and Tufts. You can find a list of my publications here (and also on my Google Scholar profile).
Undergraduate Research and Theses
Note that I am particularly excited to collaborate with Haverford students. As you can likely tell from this page, my research is generally in computer security, but related areas (or problems that use techniques from these areas) might also appeal to me. If you are planning to do a thesis (or simply generally interested in research), please drop me a line so we can discuss!
You should also read my thoughts on goals and expectations for undergraduate research.
- Spring 2019: CMSC245: Principles of Programming Languages
- Fall 2018: CMSC395: Mobile Apps for Social Change
- Fall 2018: CMSC107: Introduction to Computer Science and Data Structures
- Spring 2018: CMSC311: Computer Security
- Fall 2017: CMSC245: Principles of Programming Languages