I am a 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.
I was fortunate to spend the first half of 2022 on sabbatical with the School of Computer and Communication Sciences at EPFL in Lausanne, Switzerland.
- Professor. 2022-present. University of British Columbia Department of Computer Science.
- Associate Professor. 2015-2022. 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.
- Shaiful Chowdhury (Assistant Professor, University of Manitoba)
- Xin Xia (Huawei, formerly Monash University)
- Haroon Malik (Associate Professor, Marshall University)
- Cheng Zhang (Industry)
- Hadi Hemmanti (Associate Professor, York University)
- Tarcísio Teixeira [MSc Thesis]
- Katharine Kerr (Startup) [MSc Thesis]
- Shizuko Akamoto (CoPilot.AI) [MSc Thesis]
- Braxton Hall (TetraScience) [MSc Thesis]
- Noa Heyl (Stripe) [MSc Thesis]
- Syed Ishtiaque Ahmad (Royal Bank) [MSc Thesis]
- Lucas Zamprogno (Alloy) [MSc Thesis]
- Anna Scholtz (Mozilla) [MSc Thesis]
- Jan Pilzer (Microsoft) [MSc Thesis]
- Felix Grund (Lively Apps) [MSc Thesis]
- Xinhong (Sam) Liu (Amazon) [MSc Thesis]
- Rodrigo Araújo (CTO.ai) [MSc Thesis]
- Nick Bradley (PhD in progress) [MSc Thesis]
- Laura Inozemtseva (Karius) [PhD Thesis]
- Adriaan Labuschagne (RewardOps) [MMath Thesis]
- Quinn Hanam (Amazon) [MEng Thesis]
- Siddharth Subramanian (National Instruments) [MMath Thesis]
- Ashar Ghani (Bentley Systems)
- Ravi Chandra Malleboina (BlackBerry)
- Olga Baysal (Faculty @ Carleton) [PhD Thesis]
- Divam Jain (Google) [MMath Thesis]
- Laura Inozemtseva (PhD) [MMath Thesis]
- Abdullah El-Sayed (Waveline Media) [MMath Thesis]
- Kimiisa Oshikoji (Symantec) [MMath Thesis]