Teaching
University of Waterloo
CS 447/647 / ECE 453: Software Testing, Quality Assurance, and Maintenance
Undergraduate & Graduate Course | Winter 2024, Winter 2025
Introduces students to systematic software testing methodologies, automated quality assurance tools, and software maintenance frameworks for large-scale systems.
SE 465: Software Testing and Quality Assurance
Undergraduate Course | Winter 2024, Winter 2025
Covers fundamental concepts of software testing, including test case design, unit testing, structural coverage, automation tools, and static analysis.
SE 464: Software Design and Architectures
Undergraduate Course | Fall 2024
Explores software architecture paradigms, design patterns, UML modeling, refactoring strategies, and component-level software design principles.
ECE 750: Mining Large Software Data
Graduate Course | Winter 2025
Advanced seminar investigating modern techniques for extracting, preparing, and modeling data from large software repositories, execution logs, and system metrics.
Concordia University
SOEN 691: Mining Large Software System Data for DevOps
Graduate Course | Winter 2016, Fall 2017, Winter 2019, Winter 2020
Covers state-of-the-art mining techniques applied to logs, telemetry, and source code repositories to support software maintenance and DevOps workflows.
SOEN 345: Software Testing and Quality Assurance
Undergraduate Course | Winter 2020
Focuses on software quality control processes, testing methodologies, test automation, and validation standards.
SOEN 390: Software Engineering Team Project
Undergraduate Course | Winter 2018, Winter 2019
A project-based course where student teams design, develop, and deploy a large-scale software system, practicing modern software lifecycle standards.
SOEN 341: Software Process
Undergraduate Course | Winter 2016, Winter 2017, Winter 2018
Introduces software process models, agile practices, project management tools, requirements elicitation, and version control principles.
Queen's University
CISC 880: Engineering Ultra-large-scale Systems
Graduate Course | Winter 2015
Explores architectural styles, operational challenges, logging architectures, and performance engineering practices for ultra-large-scale software deployments.