People
Current Faculty
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 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 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 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 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 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 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 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
Nick Bradley (Ph.D. candidate)
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 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)
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 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 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 is a Ph.D. student co-advised by Reid Holmes and Caroline Lemieux.
More details can be found on Gauransh's home page.
Kyle Chin (Masters student)
Kyle is a masters student advised by 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
- Shaiful Chowdhury (Postdoctoral Fellow, University of Calgary, Canada
- Jana Dunfield (Assistant Professor, Queens University, Canada)
- Neil Ernst (Associate Professor, University of Victoria)
- Thomas Fritz (Associate Professor, University of Zurich, Switzerland)
- Takashi Ishio (Associate Professor, Nara University, Japan)
- Adrian Kuhn (Airbnb)
- Emerson Murphy-Hill (Associate Professor, NC State University -> Google Research)
- Petri Selonen (Principal Researcher, Nokia Research)
- David Shepherd (Tasktop -> ABB -> Virginia Commonwealth University -> Louisiana State University)
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!
- Syed Ishtiaque Ahmad (RBC Ventures)
- Shizuko Akamoto (Copilot.ai)
- Brian de Alwis (Post-doc, U. Saskatchwan -> Google)
- John Anvik (Assistant Professor, University of Lethbridge)
- Rodrigo Araújo (CTO.ai)
- Jennifer Baldwin (University of Victoria)
- Elisa Baniassad (Professor of Teaching, University of British Columbia)
- Alex Bradley (Coho Data)
- Brett Cannon (Google)
- Jonathan Chan (PhD @ University of Pennsylvania)
- Rick Chern (MDA)
- Yvonne Coady (Professor, University of Victoria)
- Wesley Coelho (Tasktop)
- Davor Cubranic (AbCellera)
- Sam Davis (Tasktop)
- Chris Dutchyn (Associate Professor, University of Saskatchewan)
- Anna Maria Eilertsen (Amazon)
- Andrew Eisenberg (GitHub)
- Joseph (Joey) Eremondi (Royal Society Newtown Fellow @ University of Edinburgh -> Assistant Professor, University of Regina)
- Sara Forghanizadeh
- Thomas Fritz (Associate Professor, U. Zurich)
- Steve Gao (Blast Radius)
- Ryan Golbeck (Science Teaching and Learning Fellow, University of British Columbia)
- Stephan Gudmundson
- Felix Grund (Lively Apps, Sessional Instructor - UBC)
- Braxton Hall (Digital Nomad)
- Jan Hannemann (Head of System Design, German National Library)
- Quinn Hanam (Amazon.com)
- Lyndon Hiew
- Reid Holmes (Professor, University of British Columbia)
- Terry Hon
- Doug Janzen (Tableau)
- Katharine Kerr
- Mik Kersten (CEO and co-founder, Tasktop Technologies -> CTO, Planview Inc.)
- Albert Lai (McKesson Medical Imaging Group)
- Xinhong (Sam) Liu (Alloy Inc. -> Amazon Web Services -> Workday)
- Gene Lee (Walt Disney Animation)
- Alison Li (Veeva Systems -> Okta)
- Lloyd Markle
- Arthur Marques (Google)
- Chris Matthews (University of Victoria)
- Ed McCormick
- Jonatan Milewski
- Ivan Minevskiy (SAP)
- Shawn Minto (Tasktop)
- Clint Morgan (Tasktop)
- Immad Naseer
- Jingwen (Owen) Ou (Elastic Path)
- Jan M. Pilzer (Microsoft)
- Raji Rajagopalan (Microsoft)
- Nico Ritschel (Postdoc @ UIUC))
- Martin Robillard (Professor, McGill University)
- Evgeny Roubenchtein
- Anna Scholtz (Mozilla Inc.)
- Izzet Safer (IBM Toronto Software Lab)
- Christopher Satterfield (Amazon.com)
- Felipe Bañados Schwerter (Postdoc @ University of Alberta)
- Jonathan Sillito (Assistant Professor, University of Calgary -> Amazon)
- Arjun Singh
- Navjot Singh (Oblong Industries)
- Robin Salkeld
- Ducky Sherwood (Atimi Software)
- Nick Sawadsky (Software Engineer, Optemo)
- Tarcísio Teixeira (CTO.ai)
- C. Albert Thompson
- Maria Tkatchenko (Government of Canada)
- Peeranat (ToTo) Tokaeo
- Giovanni Viviani (Amazon)
- Petcharat (Apple) Viriyakattiyaporn
- Robert Walker (Associate Professor, University of Calgary)
- Linton (Lingdong) Ye
- Annie Ying (IBM Research / Ph.D. at McGill University)
- James Yoo (Location changing every 13 business days)
- Trevor Young (EnStream)
- Jun Zhang
- Lucas Zamprogno (Alloy Technologies, Inc.)
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
- Jo Atlee (University of Waterloo, Canada)
- Manabu Kamimura (Fujitsu)
- Roberto Bittencourt (Federal University of Campina Grande, Brazil)
- Antonio Terceiro (Federal University of Bahia, Brazil)