School of Computing CSIT Building, N217
About Me
I am interested in improving the design and implementation of industrial general-purpose programming languages. I am interested in static type-checking and how to reduce the burden that it places on its users, both language designers and programmers. Most of my work focuses on gradual typing in object-oriented programming languages, but I am also interested in interactions of parsing and type checking from a language-design perspective, and in black-box runtime verification techniques that exploit unused hardware resources.
Before joining the ANU, I was a postdoc in Tom Henzinger's group at ISTA. Prior to that, I obtained a PhD in Computer Science from Cornell University (advised by Ross Tate), an M.S. in Computer Science from Northeastern University (advised by Mitchell Wand), and a BSc in Software and Information Engineering from TU Wien (advised by Franz Puntigam).
Projects
Research Projects
See all publications or browse the projects below.Gradual Typing
Making sound, efficient, and well-behaved gradual typing practical for a new generation of industrial programming languages. Read more!
Type-System and Language Design
Improving the design of popular language features, particlarly for object-oriented languages. Read more!
Semantics of Partial Programs
Formally looking at programming language design with respect to tools like IDEs, making them more usable and easier to implement. Read more!
Run-Time Monitoring
Gaining more confidence about black-box programs from untrusted vendors. Read more!
Students
Students
Interested in doing research with me? Look at the projects above or at the school's Project Website. I am also looking for PhD students.Current Students
- Sophie Press (Honours Thesis)
- Jiacheng Huang (Master's Capstone Project)
- Xinjie Xu (Research Project)
Awards
- Distinguished Reviewer (OOPSLA 2019 Artifacts)
- Distinguished Paper Award (OOPSLA 2017)
- Facebook Fellowship Finalist (2015, 2017)
- Teaching Award, Cornell University (2014)
- Teaching Award, Northeastern University (2013)
- Yiannis Tsiounis Scholarship (2012)
- Fulbright Exchange Grant (2011)
Teaching
Teaching at ANU
- COMP 1110/6710 (Structured Programming) [S1 2024]
- COMP 3160/6361 (Principles of Programming Languages) [S2 2023]
Former Teaching
- Cornell
- CS 2800 - Discrete Structures
- Spring 2014 (TA)
- CS 4120 - Introduction to Compilers
- Fall 2013 (TA)
- CS 2800 - Discrete Structures
- Northeastern
- CS 5010 - Program Design Paradigms
- Fall 2012 (Head TA)
- Spring 2012 (TA)
- CS 5010 - Program Design Paradigms
- TU Wien
- E 185.162 - Object-Oriented Programming
- Winter 2010 (Tutor ~TA)
- Winter 2009 (Tutor ~TA)
- E 185.179 - Logic Programming
- Summer 2010 (Tutor ~TA)
- Winter 2009 (Tutor ~TA)
- E 185.162 - Object-Oriented Programming
Other Activities
Research Community
- Review Committee Member for OOPSLA 2024
- Organizer of SAPLING 2023
- ERC Member and Artifact Reviewer for OOPSLA 2023
- ERC Member and Artifact Reviewer for ECOOP 2023
- Organized Doctoral Symposium at SPLASH 2022
- ERC Member and Artifact Reviewer for OOPSLA 2022
- Reviewed Artifacts for ECOOP 2018 and OOPSLA 2019
- Organized Cornell PL Retreats 2015 and 2017
- Student Volunteer at PLDI 2017 and PLDI 2018
Outreach
- Expand Your Horizons (Cornell)
- Zoom a Scientist (ISTA)
Hobbies
I spend most of my non-CS time playing board- and computer games that ideally are either about trust between players or building a large economy (or both). I bake cakes, and I like skiing and hiking.