I love thinking about programming, exploring ways to understand programs, developing new paradigms for writing programs, and helping students understand programs. I am 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 current goal is to help enable the next generation of scalable logical and deductive frameworks that power static analyses, type systems, and binary reverse engineering tools. We achieve this via a combination of algorithmic innovations (including a semantic extension of datalog to support hash-distributed structured data) and fundamentally-new infrastructure at the systems level (e.g., high-performance communication algorithms (HPDC ‘22) tailored to our workloads). My recent interests have focused on two directions: efficient compilation of Datalog to single-node (CC ‘22) and massively-parallel (CC ‘21) backends and leveraging those backends to build state-of-the-art program analysis tools that support reasoning about large, real-world corpuses of programs. As concrete examples, our recent efforts have (a) scaled the performance of control-flow analyses by orders-of-magnitude (seconds in our system versus hours in Soufflé, a best-in-class Datalog engine), (b) built all Windows C++ binaries on GitHub to train malware classification tools (see Assemblage), and (c) compiled lattice-oriented Datalog programs to achieve a 50x runtime gain (vs. Flix) using a macro-based approach in Rust.
My Google Scholar profile tracks my most up-to-date submissions.
Areas I work in
- NSF PPoSS Planning: A Full-stack Approach to Declarative Analytics at Scale. National Science Foundation. Total: $83,761 (1 year)
- DARPA V-SPELLS: Verified Security and Performance Enhancement of Large Legacy Software. Defense Advance Research Projects Agency. Total: $400,000 (4 years)
- Assemblage: Scaling Malware Analysis Pipelines. US Department of Defense. Total: $350,000 (2 years)
Undergraduate Research and Theses
Note that I am particularly excited to collaborate with Syracuse students. As you can likely tell from this page, my research is generally in programming languages, but related areas (especially computer security) also appeal to me. If you would like to pursue undergraduate research, please drop me a line so we can discuss!
You should also read my thoughts on goals and expectations for undergraduate research.
I teach CIS352, the undergraduate programming languages at Syracuse, every Fall and Spring. The course lectures from Spring 2022’s iteration are available for free on YouTube.
Each fall I also teach a special topics seminar (CIS700 at Syracuse), often on static analysis or computer security. I’m currently teaching on language-based security.