Find x. Make it work.
I'm a software engineer and data scientist. Before that, I spent ten years in mathematical physics, which gave me plenty of practice being stuck on difficult problems.
Current work
At CARIAD, the Volkswagen Group's software company, I set the initial technical direction, designed the architecture, and built the first data pipelines and interactive analysis tools for a vehicle-data platform. Four teams now develop it, supporting recurring analyses across multiple Volkswagen Group development teams.
The platform grew out of an existing vehicle-data analysis effort. I was brought in to develop more advanced analyses and explore where machine learning could help. That work exposed limits in data processing and architecture. Making those analyses practical at petabyte scale became a larger software and data effort, and within six months we had a dedicated team.
Although my main focus is now newer projects built on and around the platform, with and without AI/ML, I remain involved in wider design decisions across the teams developing it.
From bespoke analysis to a reusable dataset
I designed a system that turns many terabytes of raw recordings each day into a reusable analytical dataset. Previously, new questions meant inspecting recordings in specialist software or writing bespoke analyses that decoded the raw data again. The ingestion path now decodes binary measurement formats, network protocols, and software logs once, retaining as much data as practical. This costs more processing and storage up front, but lets investigations begin with SQL over the decoded history.
At this volume, unnecessary reads and copies add I/O and memory costs. I rebuilt the critical path in Rust as a single-pass extractor, tuning the balance between serial and parallel decoding for end-to-end throughput.
On top of the resulting tables, we built an interactive application for ad hoc questions, while recurring analyses run as optimized SQL queries on a schedule. Partitioning and clustering reduce reads by letting the query engine skip data that cannot match a filter.
Replacing the existing tools was a substantial part of the work. They were trusted and well suited to the bespoke analyses they had been built for. The new path introduced Rust, unfamiliar protocols and binary formats, and additional storage costs. We had to build confidence in the extractor's correctness and help engineers adopt the new tooling.
The extractor now converts data faster and with less compute than the previous path. As other engineers learned to extend it, we became less dependent on the old tool. Maintaining that tool alongside the new extractor eventually became a liability, and it was deprecated.
How I work
Like most senior software developers, I often get problems before anyone has quite worked out what the problem is. What that means in practice is following them across several levels of the system. I might need to change an analytical model or query, redesign a data layout, or work out how data moves through a CPU. I build early versions for real use and revise them as we understand the problem better. I explain the design decisions so other engineers can extend the work.
I started a "Pythonista club" within my team that grew into a biweekly seminar attended by colleagues from across the Volkswagen Group. I also run cross-team sessions on Spark, Git, and other tools and design decisions we encounter in our work. Apparently, leaving academia did not mean giving up teaching.
A return to software
I wrote software long before I became a mathematical physicist, freelancing alongside my studies and contributing to open source. I then spent ten years in research and teaching, working on mathematical physics and quantum field theory, and later on deep learning.
I used to spend too long looking for the best approach. Research helped me trust my judgment about when I knew enough to begin, even if the work would eventually lead me to rethink the approach. Teaching and supervising students were part of that work too. In 2022, I joined CARIAD as a data scientist, bringing software development back to the centre of my daily work.
-
to now
Senior Data Scientist
CARIAD
Developing analytical methods and building the processing systems needed to apply them to vehicle-development data at scale.
-
to
Researcher, lecturer, and interim professor
Genova, Warsaw, Wuppertal, and York
Researching mathematical physics and quantum field theory, teaching and supervising students, and later working on deep learning.
-
to
Freelance developer
Alongside my studies
Building web applications and contributing to open source when Ruby on Rails was still new.
Outside work
I live with my wife and our two children in Berlin. I have tried an unreasonable number of sports. I miss cross-country skiing, rowed for years, and enjoy bouldering despite disliking heights. I am also a good cook.
I sometimes get carried away with Advent of Code. In 2020, I used it to learn Julia and ended up reading LLVM IR, writing explicit SIMD, and injecting a little IR directly to see how fast an idiomatic solution could get.