I care about solving problems and improving efficiency with software and machine learning. Aesthetically pleasing code makes me extra happy. At the moment, I am a postdoc at Helmholtz Munich, where I work on protein generation. Before that, I did a PhD at TUM’s DAML group where I worked on time series and generative models. Even further back, I worked on 3D object detection for autonomous driving at BMW.

On my computing devices, I enjoy software that empowers the user through extensibility and introspection as Linux and Emacs do. This goes hand in hand with an affinity for digital sovereignty, self-hosting and data ownership through software like Forgejo. Stumbling upon an unfamiliar programming language in the wild like Janet is also sure to pique my interest.

Find me on github, codeberg, mastodon or scholar.

News

Posts

I write about one blog post a year. There is also an rss feed.

Software

Most of the code I write is related to one research project or another and you can find them all linked in the paper list below. However, there are a few projects which stand on their own.

In the machine learning space, there is torchode, an ODE solver for PyTorch that lets you solve many equations in parallel and each equation gets an independent solver state. Separate states ensure that samples in a batch do not influence each other indirectly, for example through a shared dynamic step size, and also let you avoid slowdown in certain scenarios as I have shown in a paper that I later wrote about this library.

I have also developed a from-scratch implementation of Edit Flows. I wrote this to really understand the model and to get some experience with language modeling and diffusion-like language models. Later on, this served as the basis for our EdiTPP paper and an extension to graphs that is under review as of August 9, 2026.

Another cluster centers around Emacs, a highly customizable code editor. In 2026, I wrote http-server.el, a robust implementation of HTTP1.1 with WebSocket support. The utility of an HTTP server in your text editor might not be immediately apparent to you, but it let me to write EMCP. With this MCP server, I can grant control over Emacs to coding agents to let them debug package conflicts or create small customizations.

Over the years, I have also written some other pieces of software like a dict.cc integration for Emacs or LaTeX pre-rendering for pelican and I regularly contribute small improvements to other projects, when I have an idea or stumble upon a bug that annoys me enough. If you are interested in these details, take a look at my github and codeberg pages.

Papers