Paul Bittner
SE+PL research, (functional) programming, domain specific languages, theorem proving, software variability, trading card games

Hello there, I am a PhD student at the University of Ulm and working as a researcher at the Technical University Braunschweig with Thomas Thüm. During the summer semester of 2024, I also worked at the University of Paderborn.
In my research, I apply programming language methods to software engineering research problems. I am a strong believer in formal methods, as they are invaluable in understanding and specifying exactly what a research problem is about, opening multiple avenues to study and finally solve it. In my experience, finding the right specification and point of view for a problem solves it almost for free.
My current research focus are languages and models for static software configuration and respective change impact analyses. By static configuration, I mean any way of specifying a set of distinct but related things, such as all C programs induced by a C code base with preprocessor macros (#if
), or the set of all sandwiches you can configure at Subway. In our Agda library Vatras, we study and compare formal languages for such variability. Within the research project VariantSync, Alexander Schultheiß and me make software-product-line technology more accessible. Our main project DiffDetective is a Java library for variability-aware differencing.
During my masters, I worked as a student assistant at the computer graphics lab of the TU Braunschweig. I was responsible for maintaining a game engine for a 360° planetarium (called the dome) and virtual reality research. Besides, I enjoyed working on my own game engine and other related projects, such as my EDSL for polymorphic entity-component systems back then. As a bachelor’s student, I also worked as a student assistant for the algorithms group at TU Braunschweig, involved in teaching for algorithm engineering and the first semester course on algorithms and data structures.