Toolsmiths have created thousands of powerful and useful software development tools, yet software developers only use a small subset of the available tools, and those that a developer does use are often not fully leveraged. I believe that the solution to this problem can be found by rethinking the design of software development tools, based on a better understanding of why developers use and do not use these tools.
I direct the Developer Liberation Front. My research spans human-computer interaction and software engineering, winning an NSF CAREER Award in 2013 and four ACM SIGSOFT Distinguished Paper Awards. My research problems are informed by and my results influence software development at companies such as ABB, Google, and Microsoft.
I am the general chair for the 2017 Symposium on Visual Languages and Human-Centric Computing (VL/HCC). I am currently on the editorial board of Empirical Software Engineering and several program committees, including the 2017 International Conference on Software Engineering. I've reviewed research proposals for the National Science Foundation and the Natural Sciences and Engineering Research Council of Canada. I am privileged to work with several outstanding Ph.D. students: Titus Barik, Brittany Johnson, and Justin Smith.
Previously, I worked with Gail Murphy in the Software Practices Lab at the University of British Columbia. I completed my Ph.D. under Andrew P. Black at Portland State University in 2009. My dissertation topic investigated how to construct refactoring tools that programmers actually want to use.
Are you a student looking for an advisor? (If you're unsure of what my research area is, check out one of my recent papers.) Are you a researcher and think that our interests overlap? I'm always looking for collaboration; you can reach me at email@example.com
From May 2016 to August 2017, I'm on sabbatical, the bulk of which I'll spend at Google working on developer productivity.
Here's my current schedule: