I am interested broadly in the fields of programming languages and software engineering, especially where they intersect. Specifically, my research focuses on static and dynamic program analysis; empirical software engineering; software analytics; software repository mining; automated refactoring; programming language semantics; and program verification. My goal is to provide developers with powerful new tools for understanding, creating, analyzing, and improving software. As part of this, I am a continuing contributor to Rascal, a meta-programming language for program analysis, program transformation, and programming language implementation.


  • Programming Languages
  • Program Analysis
  • Software Engineering


  • PhD in Computer Science, 2009

    University of Illinois Urbana-Champaign

  • BS in Computer Science, 1995

    Western Illinois University

Latest Publications

Latest Presentations