Hello, and welcome to my home page. I'm currently a graduate student at the University of California, Davis, pursuing a PhD under the advisement of Professors Prem Devanbu and Vladimir Filkov. Prior to moving to Davis, I obtained my Bachelor's in Computer Science from the University of Delaware.
Our lab group, DECAL, focuses on empirical software engineering. We use data collected from software projects to discover how development teams operate and create methods to understand and improve software processes.
Specifically, in my past research - see Publications for more details - I've focused on invariant or assertion usage in code, as well as how developers join and manage contributions to multiple projects.
Recently, I have shifted my attention to using techniques developed in natural language processing (NLP) to source code. Prior work in our lab has found software to be more repetitive and predictable than human languages such as English, suggesting that NLP methods could be even more effective in the software context. Various papers from both our lab and other groups have used these language models for code completion, api migration, discovering project styles, and finding and automatically correcting bugs. However, adapting NLP methods to software is nontrivial, and I am as interested in understanding why certain language models (from simple ngram models to more complex models like RNNs or I am in applying them to solve software problems. To see more specific details on my current individual projects, see Current Projects.