Michael Vollmer
October 2, 2026
12p EST
WANG 1004 (join in)

In many high-level programming language implementations, the runtime system dictates an object layout that the compiler must stick to. When a human programmer wants to optimize a program, however, one of their primary levers of performance is changing data representation. For example, an HPC programmer knows how to pack a regular tree into a byte array for more efficient access. Unfortunately, this is error-prone, making it an undesirable way to achieve performance optimization at the expense of safety and readability. Furthermore, whenever a program receives data from the network or disk, rigid insistence on a particular heap layout causes an impedance mismatch we know as deserialization. Data represented in memory has pointers and arbitrary, sparse layout, while data on disk is packed contiguously, so data must be transformed from one form to another and back. Programming with serialized data is a technique for unifying the in-memory and on-disk representations of data, where the serialized form is used for both. This technique allows data processing programs to skip the deserialization/reserialization steps by operating directly on the data in its serialized form, and it also represents a principled approach to optimizing programs by compacting data representations and therefore increasing locality and minimizing indirection.

About Michael Vollmer

Michael Vollmer received a PhD in Computer Science from Indiana University in 2021 and became a Lecturer at the University of Kent in 2022. His research is on programming language design and implementation, with an emphasis on designing languages and compilers that allow for efficient, low-level programming without sacrificing safety. He is also a big proponent of functional programming and often makes use of the programming languages Haskell and Racket in his research. His research interests include programming language implementation, functional programming, types, and parallel programming. For his PhD he developed Gibbon, an experimental programming language and compiler built around the concept of programming with serialised data, where programs operate directly on data that has been serialized to disk or sent over a network without the need to parse it first. He has also done research on designing and implementing typed DSLs for GPU programming, as well as augmenting language runtimes to enforce a strong memory model for multithreaded programs. He is co-I of the UKRI grant “Complementing Capabilities: Introducing Pointer-safe Programming to DSBD Tech” with PI Prof. Mark Batty. Michael primarily teaches modules relating to programming languages and software engineering.