Werner Dietl
wdietl@uwaterloo.ca, Room EIT 4007
I am Werner Dietl, an associate professor in Electrical and Computer Engineering, University of Waterloo.
Research Interests
My research interests are in safe and productive software development. I combine theoretical results with practical tools so developers can create high-quality, trustworthy software and reduce the enormous impact of software defects. To achieve this goal, I combine my knowledge of programming languages and software engineering with the verification, security, and systems expertise of my collaborators.
-
Light-weight, optional type systems: EISOP Checker Framework; Live Demo!
-
Independent Director and member of the Language Committee, Kotlin Foundation
I’m a JavaOne Rockstar speaker.
A 2017 Interview describing my work.
CV.
From January to July 2017 I was a Visiting Researcher at Google.
Previously, I worked with Prof. Michael D. Ernst and the SE.CS and WASP research groups at Computer Science & Engineering, University of Washington.
Even earlier, I was a research and teaching assistant at the Chair of Programming Methodology, ETH Zurich, working on my doctoral thesis under the supervision of Prof. Peter Müller.
Acknowledgments
I acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC).

In 2019 I received an Early Researcher Award from the Government of Ontario.
I gratefully received a Fall 2015 Google Research Award and financial support from Amazon Web Services.
Prospective students
I’m looking for great students to grow my group!
-
ECE 499 or SE 499 projects
-
MASc students
-
PhD students
-
MITACS Globalink projects
-
Fourth Year Design Projects (FYDP)
If you’re already in Waterloo, contact me. Otherwise, follow the instructions given with the links above.
Teaching
Fall 2022:
-
Fundamentals of Programming. ECE150.
-
Software Architecture and Design. SE464.
More information
-
I am a member of the Programming Languages Group (PLG), Waterloo Formal Methods group, and the Cybersecurity and Privacy Institute.
-
I am cross-appointed to the David R. Cheriton School of Computer Science.
-
I am on the Formal Techniques for Java-like Programs (FTfJP) Steering Committee since 2013 and was the chair from 2014 to 2017 and from 2018 to 2019 (interim).
Previous projects
-
Language support for program verification, trusted components, MultiJava and the Java Modeling Language
Archive
-
JAX 2022, Null Pointer Exceptions: the Problems, Current Approaches, and Ongoing Efforts and Improve your Software Quality Using Optional Type Systems
-
JAX 2020, Preventing Errors before they happen – using the Checker Framework and Implement your own Type System today!
-
-
Preventing Errors Before They Happen - The Checker Framework (Tutorial)
-
Using Type Annotations to Improve Your Code (Birds-of-a-Feather)
-
-
JAX 2019, Preventing Null Pointer Exceptions at Compile Time and Implement your own Type System, today!
-
-
Implement your own type system, today!
-
Preventing Errors Before They Happen - The Checker Framework (Tutorial)
-
Using Type Annotations to Improve Your Code (Birds-of-a-Feather)
-
-
JAX 2018, Preventing Null Pointer Exceptions at Compile Time
-
European Conference on Object-Oriented Programming (ECOOP) 2016 Program Committee
-
International Symposium on Engineering Secure Software and Systems (ESSoS) 2016 Program Committee
-
Systems, Programming, Languages and Applications: Software for Humanity (SPLASH) 2015
-
Program committee: OOPSLA 2015
-
Program committee: Eclipse Technology eXchange 2015
-
-
Talk: The Checker Framework: pluggable static analysis for Java at Tools for Automatic Program Analysis (TAPAS)
-
Talks: Preventing Errors Before They Happen and Using Type Annotations to Improve Code Quality at JavaOne 2014