Michael Schröder

I am a PhD student and research assistant at the faculty of informatics of TU Wien. I am part of the Interactive Programming & Analysis Lab of the research unit Software Engineering. My PhD advisor is Jürgen Cito. My office is located in room HD0209.

If you want to hire me, you might be interested in my CV.
If not, you might be interested in my Twitter.




I am interested in programming languages, software engineering, human-computer interaction, and the intersection of these disciplines.

Below is a selection of my academic work. You can find more of my publications on Google Scholar and dblp.

Grammar Inference

A parser without a grammar is like a function without a type signature: we can only know if it goes wrong after we have run it. If we knew the grammar beforehand, we could determine valid inputs ahead of time. Unfortunately, most parsers used in practice are written ad hoc, using common string functions like split, trim or slice, without explicitly defining an input grammar.

In my ongoing PhD research, I aim to statically infer input string grammars from unannotated ad hoc parser source code. To this end, I am developing Panini, a system for automatic end-to-end grammar inference using program slicing, refinement type inference, abstract interpretation, and SMT solving.

arXiv:2304.09733 [cs.SE] An Exploratory Study of Ad Hoc Parsers in Python
Michael Schröder, Marc Goritschnig, Jürgen Cito
MSR 2023 Registered Reports
doi:10.1145/3563768.3565550 Grammar Inference for Ad Hoc Parsers
Michael Schröder
SPLASH 2022 Doctoral Symposium
workshop presentation
Toward Grammar Inference via Refinement Types
Michael Schröder, Jürgen Cito
TyDe 2022
doi:10.1145/3510455.3512787 Grammars for Free: Toward Grammar Inference for Ad Hoc Parsers
Michael Schröder, Jürgen Cito

Feature Flags

Feature flags are a popular method to control functionality in released code, but they can quickly accumulate technical debt. Unknown dependencies between flags are a source of serious bugs, but testing all possible flag combinations is infeasible in large systems like Microsoft Office, which has about 12000 active feature flags at any given moment.

During an internship at Microsoft Research in Cambridge, I developed a probabilistic inference method based on patterns in telemetry data that is able to automatically discover causal relationships between feature flags with over 90% precision.

doi:10.1145/3540250.3558942 Discovering Feature Flag Interdependencies in Microsoft Office
Michael Schröder, Katja Kevic, Dan Gopstein, Brendan Murphy, Jennifer Beckmann
ESEC/FSE 2022 Industry Track


Personal software configurations, in the form of .dotfiles, can provide insights into the environments of software professionals and the tasks they perform. I was involved in a number of studies analysing publicly shared .dotfiles, e.g., to characterize the use of shell aliases.

To enable large-scale mining of personal configurations (and other unusual source files), I developed github-searcher, a Python tool to exhaustively sample GitHub Code Search results, as part of a research visit to MIT CSAIL.

Research visit partially funded by the Christiana Hörbiger award for the mobility of young scientists.

doi:10.1007/s10664-021-10036-y An Empirical Investigation of Command-Line Customization
Michael Schröder, Jürgen Cito
EMSE (Volume 27, Issue 2, March 2022)
doi:10.1109/MSR59073.2023.00051 Connecting the .dotfiles: Checked-In Secret Exposure with Extra (Lateral Movement) Steps
Gerhard Jungwirth, Aakanksha Saha, Michael Schröder, Tobias Fiebig, Martina Lindorfer, Jürgen Cito
MSR 2023

Software Transactional Memory

Software Transactional Memory (STM) immensely simplifies concurrent programming by allowing memory operations to be grouped together into atomic blocks. For my master's thesis, I investigated safe ways to combine STM transactions with (limited) side-effects.

During a research practicum at UNSW Sydney, I developed transactional memory with finalizers, an extension to Haskell's STM implementation, allowing the programmer to safely execute arbitrary I/O during the commit-phase of a transaction.

I also developed a new contention-free STM data structure, the transactional trie, which uses localized side-effects to eliminate unnecessary conflicts while preserving transactional safety.

Partially funded by a stipend from TU Wien.

doi:20.500.12708/158792 Durability and Contention in Software Transactional Memory
Michael Schröder
Master's Thesis, TU Wien, 2015
Advisor: Jens Knoop (TU Wien) Co-Advisor: Gabriele Keller (UNSW Sydney)
informal proceedings
Transactional Tries
Michael Schröder
KPS 2015

Type Specialization

Dynamically typed languages spend a significant amount of execution time on type checks, yet most programs are actually overwhelmingly monomorphically typed. To remove this unnecessary typechecking overhead, I implemented a portable optimization scheme for the Lua language that rewrites Lua VM instructions at run-time.

Optimizing Lua using run-time type specialization
Michael Schröder
Bachelor's Thesis, TU Wien, 2012
Advisor: Anton Ertl


I am currently involved in teaching the following classes at TU Wien:

If you are interested in a bachelor's or master's thesis, or a project in computer science, here is an (incomplete) list of offered topics:

You can find more topics at the IPA Lab. If you have any other idea that you think would align with my areas of interest, feel free to contact me!



I am on the junior program committee for MSR 2024 and the artifact evaluation committees for ISSTA 2024, PLDI 2024, ESOP/FASE/FoSSaCS 2024, and The Programming Journal (Volume 9).

I have previously served on the junior program committee for MSR (2023), the extended review committees for ECOOP (2023, 2022), the artifact evaluation committees for PLDI (2023), ECOOP (2023, 2022), ISSTA (2023, 2022), and The Programming Journal (Volumes 7 & 8), the program committee of the CIKM 2020 resource track, and was an additional reviewer for the ICSE 2021 Demonstrations track.

I was a beginner's mentor at ZuriHac (2015) and served as a student volunteer at the Vienna Summer of Logic (2014) and HiPEAC (2014).

Other Projects

I maintain the ctrie package, a non-blocking concurrent hashmap for Haskell, and the ttrie package, a contention-free STM hashmap.

Since 2014, I have collaborated with the Berlin-based artist collective and design studio Refrakt on a number of artistic, educational, and commercial mixed reality experiences.

I co-founded Auctionist, an online auction house for fine art and collectibles, and served as CTO from 2016–2017.

Queerbot was a cocktail robot that aimed to get people drunk and challenge popular misconceptions about genotype and phenotypic expression, especially as it relates to gender and sexuality. Collaboration with Miss Peggy and Zwax for Roboexotica 2015. (code)

I host the annual Landjäger Kürzestfilm Festspiele, the world's shortest film festival, where every film has to be exactly 12 seconds long.