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.
My research spans human-computer interaction and software engineering, winning an NSF CAREER Award in 2013 and three ACM SIGSOFT Distinguished Paper Awards. My research problems are informed by and my results influence software development at companies such as Google and Microsoft.
I am currently on several program committees, including the 2013 Conference on Object-Oriented Programming, Languages, and Systems (OOPSLA), the 2013 Symposium on Visual Languages and Human-Centric Computing (VL/HCC), and the International Conference on Generative Programming and Component Engineering (GPCE). 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: Xi Ge, KyungWha Hong, Brittany Johnson, James Witschey, and Yoonki Song.
In Fall 2013, I'm teaching graduate software engineering (510).
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