I am an assistant professor at Uppsala University, working on programming languages, semantics and type systems. I am involved in the Verona project together with Azure Research.
I used to be a post-doc researcher in David Broman{:target="blank"}'s group{:target="blank"} at KTH{:target="blank"}, working on heterogeneous model compilers and semantics. I am currently involved in two projects; one relating to composition of language semantics, and one relating to full-stack verification of programs synthesized from timed automata.
I did my PhD with Tobias Wrigstad{:target="blank"} and Dave Clarke{:target="blank"} at Uppsala University{:target="blank"}. There, I did research on type systems for controlling aliasing and preventing data-races in concurrent and parallel programs.
In 2018, I did an internship at Microsoft Research in Cambridge, working together with Matthew Parkinson{:target="blank"} and David Chisnall{:target="blank"} on compiler-based mitigation of the Spectre attacks.
I was one of the main contributors to Encore{:target="blank"}, a highly concurrent object-oriented programming language. Encore's type system guarantees the absence of data-races and is based on my work on Kappa [](TODO: Page of its own).
I am always interested in discussing collaboration!
[](TODO: Research interests + link to summary of research (Kappa page?))
[](TODO: List co-authors for publications)
- [2024] Trieste: A C++ DSL for Flexible Tree Rewriting -- SLE'24 (paper)
- [2024] Arrays in Practice: An Empirical Study of Array Access Patterns on the JVM -- Programming'24 (paper)
- [2023] Reference Capabilities for Flexible Memory Management -- OOPSLA'23 (paper)
- [2023] Encore: Coda -- Springer Nature (Paper to be posted)
- [2023] Statically Resolvable Ambiguity -- POPL'23 (paper|artifact)
- [2021] Resolvable Ambiguity: Principled Resolution of Syntactically Ambiguous Programs -- CC'21 (paper)
- [2020] Reference Capabilities for Safe Parallel Array Programming -- Programming'20 (paper)
- [2019] Developing a Monadic Type Checker for an Object-Oriented Language: An Experience Report -- SLE'19 (Distinguished Artifact Award) (preprint|artifact{:target="blank"})
- [2019] Progress Report: Exploring API Design for Capabilities for Programming with Arrays -- ICOOOLPS'19 (paper)
- [2018] OOlong: a concurrent object calculus for extensibility and reuse -- ACM SIGAPP (paper | artifact)
- [2018] Attached and Detached Closures in Actors -- AGERE@SPLASH'18 (paper | slides)
- [2018] Cflat: A New Modular Approach to Implementing Efficient and Tunable Collections -- Onward! (paper)
- [2018] Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping -- JLAMP (paper)
- [2018] Parallel programming with arrays in Kappa -- ARRAY@PLDI'18 (paper)
- [2018] Forward to a Promising Future -- COORDINATION'18 (Best Paper Award) (paper)
- [2018] Capability-Based Type Systems for Concurrency Control -- PhD Thesis (extensive summary)
- [2017] OOlong: An Extensible Concurrent Object Calculus -- OOPPS@SAC'17 (preprint | slides | artifact)
- [2017] Reference Capabilities for Concurrency & Scalability: an Experience Report -- OCAP'17 (slides | video forthcoming)
- [2017] Mastery Learning-Like Teaching with Achievements -- SPLASH-E'17 (paper)
- [2017] Relaxed Linear References for Lock-Free Data Structures -- ECOOP'17 (paper and talk{:target="blank"} | slides{:target="blank"})
- [2017] Actors without Borders: Amnesty for Imprisoned State -- PLACES'17 (paper{:target="blank"} | slides{:target="blank"})
- [2016] Reference Capabilities for Trait Based Reuse and Concurrency Control -- Technical Report (paper{:target="blank"})
- [2016] Types for CAS: Relaxed Linearity with Ownership Transfer -- NWPT'16 (paper{:target="blank"})
- [2016] LOLCAT: Relaxed Linear References for Lock-free Programming -- Technical Report (paper{:target="blank"})
- [2016] Reference Capabilities for Concurrency Control -- ECOOP'16 (paper and talk{:target="blank"} | slides{:target="blank"} | poster{:target="blank"})
- [2016] Kappa: Insights, Current Status and Future Work -- IWACO'16 (paper{:target="blank"} | slides{:target="blank"})
- [2015] Refined Ownership: Fine-grained controlled internal sharing -- SFM'15 (paper{:target="blank"})
- [2015] Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore -- SFM'15 (paper{:target="blank"})
- [2014] Capable: Capabilities for Scalability -- IWACO'14 (paper{:target="blank"} | slides{:target="blank"})
- [2024] SLE'24, program committee
- [2024] IWACO'24, program committee
- [2023] ICOOOLPS'23, program committee
- [2023] VIMPL'23, program committee
- [2023] IWACO'23, program committee
- [2023] PLACES'23, program committee
- [2022] SCP, reviewing
- [2021] SPLASH'21{:target="blank"}, student research competition judge
- [2021] SLE'21{:target="blank"}, artifact evaluation co-chair
- [2021] AGERE'21{:target="blank"}, member of the organizing committee.
- [2020] AGERE'20{:target="blank"}, member of the organizing committee.
- [2020] OOPSLA'20 Artifact Evaluation Committee{:target="blank"}.
- [2020] PLDI'21 Artifact Evaluation Committee{:target="blank"}.
- [2019] AGERE'19{:target="blank"}, member of the organizing committee.
- [2019] LCTES'19 Artifact Evaluation Committee{:target="blank"}
- [2019] PLDI'19 Artifact Evaluation Committee{:target="blank"}
- [2018] ECOOP'18 Artifact Evaluation Committee{:target="blank"}
- [2018] PLDI'18 Artifact Evaluation Committee{:target="blank"}
- [2017] OOPSLA'17 Artifact Evaluation Committee{:target="blank"}
- [2017] IWACO'17{:target="blank"}, co-chair and organizer together with Juliana Franco{:target="blank"}.
- [2017] ECOOP'17 Artifact Evaluation Committee{:target="blank"}
- [2017] Subreviewing for ECOOP and OOPSLA
- [2016] OOPSLA'16 Artifact Evaluation Committee{:target="blank"}
- [2016] Subreviewing for ECOOP and OOPSLA
- [2015] Subreviewing for PLDI, ECOOP, OOPSLA, CONCUR and SAC
- [2014] ECOOP'14, local student aid
Since 2021 I am the main teacher of a second year 20 ECTS credits course at Uppsala University called Imperative and Object-Oriented Programming Methodology (or IOOPM for short). In 2021 I was the proud recipient of the Union of Engineering and Science Student's Teaching Award!
Since 2023 I also teach a 5 ECTS credit course on Programming Language Semantics.
Previous courses taught include:
- Computer Hardware Engineering (7.5 ECTS, KTH), 2019
- Program Design and Data Structures (20 ECTS, UU), 2016-2017
- Imperative and Object-Oriented Programming Methodology (20 ECTS, UU), 2012-2018
I am the main supervisor of the following PhD students:
- Matilda Blomqvist (since 2023)
I have co-supervised the following PhD students:
- Ellen Arvidsson (since 2021)
- Viktor Palmkvist (since 2021, graduated 2024)
- Beatrice Åkerblom (since 2019)
I am currently supervising the following bachelor thesis projects:
- Emma Angetun -- Extending the Object Calculus OOlong
- Linus Waehler -- Can ChatGPT Achieve Mastery? Using ChatCPT to Pass a Second Year University Programming Course
I have supervised the following master thesis projects:
- Alfrida Mattisson -- Automatically Choosing Implementations of Abstract Data Types
I have supervised the following bachelor thesis projects:
- Gustav Lundin -- Pattern Matching in Encore{:target="blank"}
- Christian Törnqvist -- Finding Patterns in Lock-Free Algorithms
- Joel Wallin -- Implementing Safe Sharing Features in Encore
- Jonas Olander -- Separate Compiling for Encore
- Tage Johansson -- A Strongly Typed Shell with Full Control over Side Effects
I spend a lot of my free time on listening to and creating music.
- From 2008 to 2017 I was the conductor of Kalmar Nation's Choir{:target="blank"} in Uppsala. Here{:target="blank"} is a video of us performing of Vienna Teng's beautiful Hymn of Acxiom.
- Since 2015 I am a singer in Uppsala Vokalensemble{:target="blank"}.
- I also like to write and arrange choir music. Here is a recording of my arrangement of the traditional Swedish hymn "Den blomstertid nu kommer". You can also buy the arrangement! Here{:target="blank"} is a recording of my setting of Alfred Tennyson's Now Sleeps the Crimson Petal, performed by the women's choir Discordia{:target="blank"}. [](TODO: Another page)
- I play the electric and upright bass. Here is a recording I made as a Christmas present for the friend who introduced me to the wonderful music of Vulfpeck{:target="blank"}.
- I play bass in the now dormant band Morfis. Our album Dunia{:target="blank"} from 2013 is on Spotify! I wrote and arranged the songs Gånglåt från Gottsunda ("Walking Song from Gottsunda"), Cykeltjuven ("The Bicycle Thief") and Kometen ("The Comet").