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 and Education Committees, Kotlin Foundation
I am a JavaOne Rockstar speaker for presentations at JavaOne 2016 and JavaOne 2017.
A 2017 Interview describing my work.
CV.
In October 2023 I was a Guest Professor at the Faculty of Informatics at TU Wien in Vienna, Austria. I gave a public lecture and taught a course on Program Analysis.
From May to August 2023 I was an International Excellence Fellow at the Karlsruhe Institute of Technology (KIT) in Karlsruhe, Germany.
Since May 2023 I am a Professional Licensee Engineering (P.L.Eng.) (Non-Practising) with the Engineers and Geoscientists BC.
From January to July 2017 I was a full-time Visiting Researcher at Google in Mountain View. From October 2018 to October 2020 and from November 2023 to May 2024 I was a part-time consultant at Google Canada, as a Visiting Faculty Researcher, remotely working with the Java team 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).
Select Grants
In April 2024 I received an Amazon Research Award (ARA) Fall 2023.
In 2019 I received an Early Researcher Award from the Government of Ontario.
In April 2016 I received a Fall 2015 Google Research Award and in September 2017 I received 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.
Calls for Participation
I am the General Chair for ECOOP 2024. Register and let us meet in Vienna!
Teaching
Spring 2024:
Fall 2024:
-
Fundamentals of Programming. ECE150.
-
Software Reliability Engineering. ECE654.
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
-
LATHC24: 2nd Languages, Architectures, and Tools for Heterogeneous Computing Workshop
-
LATHC23: 1st Languages, Architectures, and Tools for Heterogeneous Computing Workshop
-
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