About
I'm a Lecturer in Programming Language Foundations at the University of Glasgow School of Computing Science, where I am a proud member and lead of the Programming Languages Theme. I am also one of Glasgow's representatives to the Scottish Programming Languages Institute.
Previously, I was a researcher (and subsequently co-investigator) on the STARDUST project that ran from 2020--2025, researching behavioural types for actor systems with Simon Gay and Phil Trinder. Before that, I spent 6 years at the University of Edinburgh School of Informatics, first as a PhD student in the Centre for Doctoral Training in Pervasive Parallelism working with Sam Lindley and Philip Wadler, and second as a Research Software Engineer working with James Cheney.
Research Interests
I am interested, broadly speaking, in the design and implementation of functional programming languages.
My research focuses on programming abstractions and type systems. I like putting theory into practice (most of my research is accompanied by open-source software artifacts), and practice into theory (giving us the power to precisely understand, reason about, and build upon existing programming abstractions).
Programming abstractions make it easier to write correct, more concise, and often more efficient code. As an example, my work on language-integrated query shows benefits for curated scientific databases, and my work on temporal language-integrated query brings the power of temporal databases to non-temporal RDBMSs. I am also interested in reactive programming and abstractions for programming user interfaces.
Type systems provide lightweight, language-integrated guarantees about program correctness. I am particularly interested in behavioural type systems that give strong correctness properties about runtime behaviour, such as conformance to communication protocols and deadlock-freedom.
Both of these areas are important in the era of agentic AI: coding agents allow us to write code faster, but we must still be confident in what generated code does, and whether it is correct. Just because we can write code faster does not mean we should stop striving to write better code. Programming abstractions and domain-specific languages allow us to write shorter and more concise programs that are easier to reason about, and type systems can give rapid feedback on incorrect code that is useful in both human- and AI-driven development.
My current main research focus is on mailbox types, a behavioural type system for message passing languages like Erlang and Elixir. I am the core developer of Pat, the first programming language with support for mailbox types.
Contact
Feel free to get in touch: you can reach me at simon.fowler -at- glasgow.ac.uk or simon -at- simonjf.com.
I am generally happy to act as an external reviewer for papers matching my research interests, provided that I can see other reviews and participate in the discussion after submitting my review.
Recent News
- (24th August 2026): A few things! First, I recently enjoyed organising SPLV 2026 at Glasgow; thanks to all who spoke and attended. Second, I have upgraded my MBCheck mailbox type checking tool to a full programming language called Pat, available on GitHub. Third, I am very excited to be on the PC of ICFP 2027!
- (7th April 2026): Very happy that Proof of Delivery: Mechanized Mailbox Types, led by Edgard Schiebelbein, has been accepted at COORDINATION'26! Preprint here. On the theme of mailbox types, Simon Gay, Luca Padovani and I have written a book chapter that serves as an introduction to mailbox types.
- (27th February 2026): Delighted that Speak Now: Safe Actor Programming with Multiparty Session Types has been accepted at OOPSLA'26! Preprint here.
- (3rd February 2025): I haven't updated this in a while! Matthew Alan Le Brun, Ornela Dardha and I have had a new paper on replication in multiparty session types accepted to ESOP 2025. Also, I'll be on the PC of GPCE 2025.
Teaching
In Semester 1 2026/27, I will be co-teaching Functional Programming H (with Jeremy Singer). In Semester 2, I will be teaching (all of) Programming Languages H.
Within the School of Computing Science I am Class Head for Level 2 students.
I'm happy to meet to discuss course content and coursework; if my office door (510C in the Sir Alwyn Williams Building) is open, just knock. If you'd like to set up a meeting, please send me an e-mail.
Projects
- Session Types for Reliable Distributed Systems (STARDUST). Co-investigator.
Events
- ICFP 2027 (Programme Committee)
- Scottish Programming Languages and Verification Summer School (SPLV) 2026 (Organising Committee)
- CP@PLDI 2026 (Programme Committee)
- GPCE 2026 (Programme Committee)
- GPCE 2025 (Programme Committee)
- ESOP 2025 (Programme Committee)
- FORTE 2024 (Programme Committee)
- PADL 2024 (Programme Committee)
- LIVE 2023 (Programme Committee)
- GPCE 2023 (Programme Committee)
- ICE 2023 (Co-chair / "ICEcreamer")
- LIVE 2022 (Programme Committee)
- Scottish Programming Languages Seminar (SPLS), 1st July 2022 (co-organised with Matthew Alan Le Brun and Jeremy Singer)
- VORTEX 2022 (Programme Committee)
- ICE 2022 (Programme Committee)
- ECOOP 2022 (Programme Committee) (Distinguished reviewer award)
- Dagstuhl Seminar 21372, Behavioural Types: Bridging Theory and Practice (Invited participant)
- ECOOP 2021 (Invited Expert: PL/SE for Concurrent / Distributed Systems)
- LIVE 2021 (Programme Committee)
- AGERE 2021 (Co-chair)
- ICE 2021 (Programme Committee)
- ProWeb 2021 (Co-chair)
- LIVE 2020 (Programme Committee)
- ICE 2020 (Programme Committee) (Distinguished PC member award)
- ProWeb 2020 (Co-chair)
- Shonan Seminar 149, Programming Languages for Distributed Systems (Invited participant)
- ICE 2019 (Programme Committee)
- OOPSLA 2019 (Artifact Evaluation Committee) (Distinguished reviewer award)
- PLACES 2019 (Programme Committee)
- Scottish Programming Languages Seminar (SPLS), 11th October 2017 (co-organised with Craig McLaughlin)
- Scottish Programming Languages Seminar (SPLS), 21st October 2015 (co-organised with Sam Lindley and James McKinna)