About
I build systems that make machine learning useful in places where it has not been used before. Lately that means agentic systems in private equity; before that, high-performance computing at ETH Zürich and machine learning at scale in consulting.
What I do now
I lead agentic AI systems at a private equity firm. Private equity runs on judgement applied to messy, unstructured information — company filings, management presentations, market reports, hundreds of documents per deal — and most of that work is still done by hand because it demands context and care rather than pattern matching.
The interesting question is not whether a model can read a document. It is where an automated system can be trusted, what it should hand back to a human, and how you can tell when it is wrong. That is a systems problem as much as a modelling one: retrieval, evaluation, guardrails, observability, and the discipline to keep a person in the loop wherever the cost of being wrong is high.
I am also learning the domain itself — deal flow, modelling, how decisions actually get made. Writing about that as I go is part of the blog.
Where I came from
I studied Computational Science and Engineering at ETH Zürich — an MSc built around the idea that simulation, numerics and software engineering are one discipline rather than three. For five years I lived in that world: teaching GPU programming at CSCS summer schools, running the HPC Lab and the C++ course at ETH, and spending a semester at Harvard's CSE Lab.
My thesis built a deep-learning framework for Korali and benchmarked it against cuDNN, oneDNN, PyTorch and TensorFlow. Before that I put approximate Bayesian inference onto GPUs with R-INLA. Both are written up on the projects page.
Then I took it to industry. A contract doing backend and generative AI work, then nearly two years as a Senior Machine Learning Engineer in a Center for Advanced AI — production ML, the unglamorous parts included — and now private equity.
How I think about the work
- Measure before you believe. An HPC background leaves you permanently suspicious of numbers you did not produce yourself. Most "the model is slow" problems turn out to be placement, I/O or memory, not the model.
- The boring parts decide the outcome. Retrieval quality, evaluation harnesses and deployment reliability determine whether an AI system is useful far more often than the choice of model does.
- Automate the work, keep the judgement. The useful target is rarely full autonomy. It is removing the mechanical parts so a person spends their attention where it is actually worth something.
- Build it to find out. This site runs on infrastructure I provision, deploy and operate myself, partly because that is the fastest way to actually understand a thing.
Outside that
Open source, Arch Linux and Sway, Emacs and Vim. Triathlon, climbing, chess. Austrian, based near Vienna, working in German and English.
Get in touch
Happy to talk about agentic systems, HPC, or anything on this site.