I an Associate Professor in the Software Practices Lab, part of the Department of Computer Science at the University of British Columbia. I am broadly interested in the problems software engineers encounter as they create and evolve software systems and finding novel techniques to improve their effectiveness at these tasks.
Software is a human product; 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 research projects have investigated a range of problems surrounding software testing and validation, source code reuse, code search, context-sensitive example location, API understanding, speculative analysis, code review and team awareness. A mostly current version of my CV can always be found here.
- Associate Professor. 2015-present. University of British Columbia Department of Computer Science.
- Assistant Professor. 2010-2015. University of Waterloo School of Computer Science.
Postdoc. 2008-2010. University of Washington CSE. Hosted by David
Projects: Inconsistency detection and speculative analysis.
Ph.D. 2004-2008. University of Calgary CS. Advised by Rob Walker.
Thesis title: Pragmatic Software Reuse.
M.Sc. 2002-2004. University of British Columbia CS. Advised by Gail Murphy.
Thesis title: Using Structural Context to Recommend Source Code Examples.
- B.Sc. Computer Science. 1997-2002. University of British Columbia.
The best part of my job is working with students and I have been fortunate to work with a large number of exceptional people. Their ideas, enthusiasm, and drive are what make projects successful and fun to work on.
- Quinn Hanam (PhD in progress)
- Nico Ritschel (PhD in progress)
- Nick Bradley (MSc in progress)
- Rodrigo Araújo (MSc in progress)
- Felix Grund (MSc in progress)
- Xinhong Liu (MSc in progress)
- Anna Scholtz (MSc in progress)
- Lucas Zamprogno (Undergraduate researcher)
- Annie Wang (Undergraduate researcher)
- Laura Inozemtseva [PhD Thesis]
- Adriaan Labuschagne [MMath Thesis]
- Quinn Hanam (UBC PhD) [MEng Thesis]
- Siddharth Subramanian (National Instruments) [MMath Thesis]
- Ashar Ghani (Bentley Systems)
- Ravi Chandra Malleboina (BlackBerry)
- Olga Baysal [PhD Thesis]
- Divam Jain (Google) [MMath Thesis]
- Laura Inozemtseva (uWaterloo PhD) [MMath Thesis]
- Abdullah El-Sayed (Waveline Media) [MMath Thesis]
- Kimiisa Oshikoji (Symantec) [MMath Thesis]