PAGE OUT OF DATE
I have moved. Please use this location instead.
Current Status
I will be joining the software engineering group in the Department of Computer Science at the University of Waterloo as an Assistant Professor in August, 2010.
Research Overview
Software is a human product. Developers are intrinsic to software development; as systems scale in size and complexity, the challenges that developers must overcome rapidly increase. I believe that by better understanding how people create, explore, evolve, and reason about software systems, we can enhance developers' effectiveness and improve the quality of their systems.
My past projects have investigated a range of problems surrounding software reuse, software search, context-sensitive example location, and API understanding. I am currently focusing on awareness in large teams and extending traditional source code editors.
I believe that including developers of all ranges of experience is essential to effectively investigating how people think about software; I inform and evaluate my research by engaging these developers through surveys, controlled experiments, design sessions, and case studies.
Brief History
- Assistant Professor. 2010-Present. University of Waterloo School of Computer Science.
- Postdoc. Computer Science. 2008-2010. University of Washington. Worked with David Notkin investigating inconsistencies between software system's static representation and their dynamic behaviour and investigating how speculation can improve development environments.
- Ph.D. Computer Science. 2004-2008. University of Calgary. Advised by Rob Walker. Thesis title: Pragmatic Software Reuse.
- M.Sc. Computer Science. 2002-2004. University of British Columbia. Advised by Gail Murphy. Thesis title: Using Structural Context to Recommend Source Code Examples.
- B.Sc. Computer Science. 1997-2002. University of British Columbia.
Recommendation Systems for Software Engineering (RSSE 2010)
The 2nd International Workshop on Recommendation Systems for Software Engineering was held on May 4, 2010 in Cape Town, South Africa (RSSE 2010).
The workshop hosted more than 20 international researchers who presented a variety of papers relevant to creating recommendation systems for software engineering. The proceedings can be found on the ACM Digital library.