Reid Holmes

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.

Past Affiliations

EPFL logo

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.

UofW logo UW SE logo

Between 2010 and 2015 I was a member of the Software Engineering group in the School of Computer Science at the University of Waterloo.

Brief History


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.

Current Students

Past Postdocs

Graduated Students