My publications are available from the University of Kent's Academic Repository.
I belong to the following research groups:
- Choreography reconstruction: how to build a bird's eye view of a distributed system from specifications of its components. See [CONCUR'12, POPL'15] notably.
- Relationships between session types and automata theories: session types are a type discipline for concurrent programs (typing the behaviour of a program instead of its data). Session types theories relate to many other theories (e.g., model checking, communicating automata, etc). See [TACAS'16,FoSSaCS'17,CAV'19,CONCUR'19].
- Static verification of message-passing programs. In particular, I am working on a tool and theory to statically detect deadlocks in Go programs. See [POPL'17,ICSE'18] on this topic. These papers have been nicely summarised by other people: see this post and this other post on the Morning Paper blog, as well as this blog post. See also the related survey we have done with Nicolas Dilley, see [SANER'19].
TeachingI am currently teaching on the following courses:
- CO337 - Computers and the Cloud (with Radu Grigore and Stefan Marr)
- CO663 - Programming Languages: Applications and Design (with Radu Grigore)
- CO871 - Advanced Java for Programmers (with Richard Jones)
- CO885 - Project Research (with Dominique Chu)
- CO894 - Development Frameworks (with Stefan Marr)
- Upcoming: ICE 2020 (co-chair)
- Past: ICE 2013 (pc), ICE 2014 (pc), ICE 2015 (pc), ICE 2016 (pc), PrePost 2016 (pc), ICE 2017 (pc), ICE 2018 (pc), ICE 2019 (pc), Erlang 2019 (pc), YR-CONCUR 2019 (pc)