Current Faculty

Ivan Beschastnikh

Ivan Beschastnikh

Ivan Beschastnikh is an Associate 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.

William J. Bowman

William J. Bowman

William J. Bowman is an Assistant Professor interested in making it easier for programmers to communicate their intent to machines, and preserving that intent through compilation. His recent work examines preserving machine-checked specifications and proofs through compilation and statically enforcing those invariants in the low-level (assembly-like) code.

More details about William'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 a 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.

Caroline Lemieux

Caroline Lemieux

Caroline is an Assistant Professor in the lab. Her research focuses on building automated tools that help developers improve the correctness, security, and performance of software systems. Her work combines program analysis with optimizing search and learning techniques in order to make these tools tractable over large-scale software projects.

Caroline's research has tackled a variety of software engineering and programming languages problems, including test-input generation (in particular, fuzz testing), specification mining, and program synthesis.

More details about Caroline's research can be found on her 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.

Alex Summers

Alex Summers

Alex is an Associate Professor, working in a number of research areas related to program correctness. He specialises in deductive verification: techniques for annotating program code with specifications, and providing tools which can automatically answer the question of whether the code lives up to those specifications.

Alex is interested in a wide variety of techniques and tools, and has worked in the past on type systems, object invariant techniques, formal proof systems, intermediate verification languages, writing and debugging logical encodings to SMT solvers, etc.

More details about Alex can be found on his web page.

Affiliate Faculty

Thomas Fritz

thomas fritz

Thomas is 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. Thomas 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 UBC home page and his UZH home page.

Current Members

Felipe Bañados Schwerter (Ph.D. candidate)


Felipe's research interests include Programming Languages, Type Systems, Gradual Typing, Abstract Interpretation, Formal Verification, Human Computer Interaction, Provenance, and Social Aspects of Computing.

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

Nick Bradley (Ph.D. candidate)

Nick Bradley

Nick is a Ph.D. 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 examined the role of conversational agents in software engineering.

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

Adam T. Geller (Ph.D. student)

Adam T. Geller

Adam is a Ph.D. student in the lab supervised by William J. Bowman. He is interested in solving problems relating to practical type preservation.

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

A. Finn Hackett (Ph.D. student)

A. Finn Hackett

Finn is a Ph.D. student in the lab supervised by Ivan Beschastnikh. His interests relate to solving practical problems via programming language design, often involving domain-specific languages, declarative specifications, and verification tooling.

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

Paulette Koronkevich (Ph.D. student)

Paulette Koronkevich

Paulette is a Ph.D. student supervised by William J. Bowman. Her research focuses on type preserving compilation of dependent types.

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

Yanze Li (Ph.D. student)

Yanze Li

Yanze is a Ph.D. student co-advised by Ivan Beschastnikh and Alexander J. Summers. His interests relate to program verification, static analysis, type systems, and their applications to distributed systems.

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

Gauransh D. Tandon (Ph.D. student)

Gauransh D. Tandon

Gauransh is a Ph.D. student co-advised by Reid Holmes and Caroline Lemieux. His research focuses on

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

Kyle Chin (Masters student)

Picture of Kyle

Kyle is a masters student advised Reid Holmes. He is interested in how we can help students better learn computer science and software engineering, and finding the best ice cream in Vancouver.

Past Postdoctoral Researchers

Past Graduate Students

The 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!

Past 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, Braxton Hall, 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, James Yoo, Jason Xu

Past Visitors

Past Staff