research
I have a wide range of research topics that I am interested in, and I prioritize projects that give students research experience. My artificial societies research group is currently working at the intersection of high-performance computing and emergent LLM behavior, including narrative understanding and interactive storytelling systems.
My PhD (2019) work was in the application of vector embeddings to systems software. This is where I learned to love and hate static program analysis and compilers.
And I have a long-standing interest in software security. My first research projects as a student all revolved around memory forensics and low-level systems exploitation. My 2012 master's thesis, Android Privacy Through Encryption, presented one of the first Android implementations of per-application encryption with key removal on screen lock, designed to limit exposure to forensic acquisition.
Peer-reviewed publications
2025
The Wizard in the Town Plaza: Voice-Based Interactive Storytelling in Public Spaces
ICCC 2025 best poster · pdf
2023
2020
2019
2018
Path-Based Function Embedding and its Application to Error-Handling Specification Mining
ESEC/FSE 2018 · doi
Mining Error-Handling Specifications for Systems Software
ESEC/FSE 2018, ACM Student Research Competition 1st place · doi
Path-Based Function Embeddings
ICSE 2018, poster · doi
2014
Theses
Unlikely Paths: Error-handling Specification Inference for Software that Uses the Return-code Idiom
PhD dissertation, University of California, Davis, 2019
Android Privacy Through Encryption
Master's thesis, Southern Oregon University, May 2012
Blog posts
These articles were published on my blog and are not peer reviewed.
Evil maid goes after WhisperCore: why we need a securable bootloader
September 25, 2011
Bypassing LastPass Mobile UUID Restrictions
February 19, 2011