Faculty & Staff



The Dependable Software Systems program focuses on the techniques for building reliable software systems. This requires both technical knowledge and an understanding of business and ethics. For example, for safety-critical software systems – like those in autonomous cars, aircraft, health care and transport – engineers need to understand risk and ways to mitigate it. Through the business classes that make up half of the curriculum, our students learn to think about risk from a social and business perspective. Their technical classes enable them to consider strategies to reduce that risk.

The technical classes deepen students’ skills in three main areas: software testing and verification, error-resilient computing, and security and privacy. A course on software project management also introduces techniques for managing projects so that software reliability is not relegated to a secondary concern but is aligned with functionality milestones.

The cohesive experience offered by our program is invaluable. Given the increasing prevalence of autonomous systems, it’s critical that engineers understand the limitations of the technology, are capable of deciding if a system is safe or not, and are able to build in additional safeguards to manage risk.

With the program’s mix of engineering and leadership, students better understand both sides of software development. They know from their hands-on experience what can be achieved, putting them in a better position when developing budgets and timelines for software development projects.

UBC is an excellent place to study dependable software systems. Many of our faculty members are specialists in this area and students benefit from their perspective and experience. My own research is very much aligned with the program. I work on techniques and tools for ensuring correct behaviour of software in embedded systems, with an emphasis on timing properties.

The Master of Engineering Leadership in Dependable Software Systems is an excellent choice for professionals wanting to strengthen their engineering skills and gain business acumen. Our students have a diverse range of backgrounds and have worked in many different industries; this diversity leads to interesting dialogue and insights about the reliability techniques best suited to different systems and environments.


Sathish Gopalakrishnan is an Associate Professor in UBC’s Electrical & Computer Engineering Department. He is a member of the Institute for Computing, Information, and Cognitive Systems and a Faculty Fellow at St. John’s College. Dr. Gopalakrishnan received a PhD in computer science and an MS in applied mathematics from the University of Illinois at Urbana-Champaign. He is the Chair of the Vancouver Chapter of the IEEE Computer Society and a member of the Executive Committee for the IEEE Technical Committee on Real-Time Systems.

Dependable Software Systems

Dependable Software Systems

Gain the technical, business and project management skills to design and maintain reliable software systems.

Read More