Reid Holmes is a Professor in the Department of Computer Science at the University of British Columbia , part of the Faculty of Science . His research focuses on improving software engineering practices, particularly in end-user programming, developer tool design, and empirical software engineering. He leads the Software Practices Lab and has contributed extensively to understanding developer workflows, testing methodologies, and educational tools for programming. Education: PhD in Computer Science, University of Calgary (2008) MSc in Computer Science, University of British Columbia (2004) BSc in Computer Science, University of British Columbia (2002) Research Interests: End-user programming environments, software testing, developer productivity tools, human-centered AI, educational technology, and empirical studies on software development practices. His work emphasizes bridging the gap between theoretical advancements and practical usability for both professional developers and novice programmers. Recent Article Trends: Focus on hybrid programming environments (e.g., block-based and graph-based systems), human-AI collaboration in testing/assertion generation, and age-inclusive IDE design. His research often involves empirical evaluations of tool effectiveness and developer workflows. Awards: FSE Most Influential Paper Award ICSE Most Influential Paper Award UBC Computer Science Teaching Award CS-Can/Info-Can Outstanding Research Prize Advising & Grants: Supervised over 30 graduate students and postdocs. Noted for collaborative projects with industry partners (e.g., Mozilla, Microsoft). Active in curriculum development for software engineering education. Labs/Teams: Leader of the Software Practices Lab , collaborating with industry and academic partners on tools like CodeShovel , AutoAssert , and Devy (conversational developer assistant).









