Current Faculty

Ivan Beschastnikh

Ivan Beschastnikh

Ivan Beschastnikh is an Assistant Professor and works at the intersection of software engineering and systems. His particular domain of interest is distributed/concurrent systems. He is especially interested in the problems of specification inference and program comprehension. His solutions usually combine program instrumentation, program analysis, and software visualization.

More details about Ivan's research can be found on his home page.

Ronald Garcia

Ronald Garcia

Ronald Garcia is an Associate Professor of Computer Science at the University of British Columbia. His research investigates how fundamental concepts in the theory, implementation, and practice of programming languages can improve the software development process. His research has focused on static and dynamic type-based reasoning, metaprogramming, and generic programming.

More details about Ron's research can be found on his home page.

Reid Holmes

Reid Holmes

Reid is an Associate Professor in the lab. He is broadly interested in the problems software engineers encounter as they create and evolve software systems. His research mostly involves finding novel techniques to make it easier for software developers to quickly, and correctly, evolve their software systems.

Reid's work has spanned many different domains including recommendation systems, software reuse, source code documentation, software testing, and software development environments.

More details about Reid's research can be found on his home page.

Gail Murphy

Gail Murphy

Gail is a Full Professor and the founder of the lab. She is also the Vice-President Research & Innovation for UBC and a co-founder and Director at Tasktop Technologies.

Gail's research interests are in software engineering with a particular interest in improving the productivity of knowledge workers, including software developers. Her group develops tools to aid with the evolution of large software systems and performs empirical studies to better understand how developers work and how software is developed.

More details about Gail's research can be found on her home page.

Affiliate Faculty

Thomas Fritz

thomas fritz

Thomas am an Associate Professor in the Department of Informatics at the University of Zurich.

In his research, he focuses on empirically studying software developers and on using personal and biometric data to improve software developers' productivity. By better understanding what software developers need, what they experience, and how they operate on a daily basis, we will be able to provide better and more tailored support to developers as well as improve their productivity and the quality of the software they produce. In particular, Thomas is interested in three areas: developer productivity, biometric sensing and information needs. Thopmas works with over 20 international companies, including ABB, Microsoft, and IBM. This research was featured in several media, including the New Yorker, the Wall Street Journal, and the New Scientist.

More details can be found on his personal UBC home page and his UZH home page

Current Members

Giovanni Viviani (Ph.D. student)


Giovanni is the longest serving PhD student in the lab. He is broadly interested in software engineering, particularly how developer communicate between each other and how that can be used to enhance their workflow.

His current focus is exploring the possibility of identifying when developers discuss design and extract it.

More details can be found on Giovanni's personal home page.

Quinn Hanam (Ph.D. candidate)


Quinn's research is at the intersection of human factors, static program analysis and machine learning. Specifically, he helps developers gain insight into how code changes affect program behaviour by investigating (1) what information developers need and how to present that information during code review, and (2) how program analysis tools can leverage large datasets of source code changes to automatically learn relevant information.

More details can be found on Quinn's home page.

Daniel Almeida (Ph.D. student)

Daniel Almeida

Daniel is a Software Developer and researcher in training (aka PhD Student). His interests include software design/evolution and empirical software engineering.

He likes to spend his days drinking the elixir of life (that would be coffee, of course), coding, and reading/writing papers. His goal is to identify, understand and solve problems that come between software developers and great work being done.

More details can be found on Daniel's personal home page.

Arthur Marques (Ph.D. student)

Arthur Marques

Arthur is a Ph.D. student in the lab. His research interests include software engineering, software testing, and software evolution. He is currently interested in identifying/mapping knowledge snippets spread throughout software artifacts.

More details can be found on Arthur's personal home page.

Nico Ritschel (Ph.D. student)


Nico is a Ph.D. student that is co-supervised by Reid Holmes and Ron Garcia, doing research that is on the brink of Software Engineering and Programming Languages like static analysis, program transformations and type systems. He is both interested in the theoretical aspects that lay the foundation for these topics, as well as the impact they have on developers when applied in their toolchain.

Nick Bradley (M.Sc. of Science in Computer Science)

Nick Bradley

Nick is a graduate student in the lab. He is interested in understanding developer workflows and how they can be made more natural to interact with. His Master's thesis examines the role of conversational agents in software engineering.

More details can be found on Nick's personal home page. Code and data related to his personal and research projects can be found on his GitHub page.

Rodrigo Ara├║jo (M.Sc. of Science in Computer Science)


Rodrigo is a graduate student at UBC. He is interested in the intersection of machine learning, software systems, and software engineering, and how they can fit together to build and evolve self-adaptive systems that can change, heal, and optimize in real time in order to make engineers more productive and systems more reliable.

More details can be found on Rodrigo's personal home page.

Felix Grund (M.Sc. of Science in Computer Science)


Felix is currently aiming for a Master of Computer Science at the lab. He is currently focusing on supporting software developers in the process of assessing quality of existing software modules. He has a general passion for Web technology with a few years of industry experience in the field.

Xinhong (Sam) Liu (M.Sc. of Science in Computer Science)


Sam is a graduate student in the lab. More details can be found on his personal website.

Lucas Zamprogno (Undergraduate researcher)


Lucas is an undergraduate student in the lab who is working on improving our understanding of how industrial developers actually perform code review. He is doing this by bringing biometric sensing into the code review setting to understand how developers reason about the patches they are reviewing.

Chris Satterfield (Undergraduate researcher)

Chris Satterfield

Chris is an undergraduate student in the lab. His current research focuses on the automatic identification and summarization of the tasks that professionals perform throughout their day. He is also interested how biometric sensors may be used to provide insights into developer productivity.

Past Members

Postdoctoral Researchers

Graduate Students

SPL has had many wonderful students participate in the lab. Below are some with their first affiliation after graduation when known. If you are missing from this list or want your entry updated, just drop Reid an email!

Undergraduate Students

SPL has also welcomed many undergraduate students for Honours Theses, undergraduate directed studies, summer research projects, cooperative work terms and more. Here are some of the students who have participated in the lab.

Victor Barua, Eric Booth, Harinder Brar, Avi Bryant, Andrew Catton, Andrew Chan, Ruiyuan (Ronnie) Chen, Danita Cheng, Denise Choi, Wesley Coelho, Alison Clark, Joseph Collins-Unruh, Mirela Cukovic, Tanya Ellchuk, Taivo Evard, Thomas Fritz, Shauna Gammon, Nathan Hapke, Thad Heinrichs, Anson Ho, Reid Holmes, Harold Hsu, Katherine Irvine, Khurram Jafery, Tom Jarecki, Mik Kersten, Dominika Lacka, Alan Lai, Albert Lai, Ciaran Llachlan Leavitt, Leo Lee, Nick Lee, Robert Lee, Cynthia Lim, Julia Litke, Lindsay Mason, Tracy Mew, Shawn Minto, Kenneth Mui, Robin Newhouse, Jerilyn Ning, Leo Ping, Winnie Poon, Tanja Radeka, Robert Rekrutiak, Ekaternia Saenko, Jeff Steinbok, Derek Shimoza, Patience Shyu, Jonathan Stiansen, Ken Sueda, Erin Takeshita, Kimberely Tee, Matthew Theobald, Cristina Teodoropol, Neil Thomas, Stephanie Van Dyk, Kaili Vesik, James Williams, Dave Wilson, Albert Wong, Annie Ying, Jason Xu