Philipp Stephan


Hi there! I’m Philipp—a physics graduate turned software engineer. Currently I work on AI driven neuroimaging at mediaire. I also enjoy theater and acting, as well as cooking and cocktails.


<!– In recent years I’ve gotten more into cooking, and—being the nerd I am—food science. You can find some of my recipes (more like experiments) on my blog. Although this is more of a personal log/reference point for myself than proper recipes.

I also, or even more so, am interested in mixology—the art of cocktail mixing. There’s an extra page dedicated to this. Even though I’m mainly concerned with my home bar, serving friends and family (and myself ;), I also do work for Beef 800°: Bar & Grill. –>

My favorite kind of entertainment is audio. I love audiobooks, radio drama, and podcasts. Being a listener to a lot of different shows and genres since podcasts were a comparatively niche phenomenon, I’ve always wanted to bring my passion for these formats to other people. Therefore I curate a list of my favorite podcasts.


I fell in love with programming in my early teenage years and have been coding different kinds of projects ever since. There’s a lot of old code on my Gitub account, most of which is not representative of the style of code I’d write nowadays.

I started out in Q-Basic, followed by C, writing little games and utilities. Then I discovered PHP and focued on web development for a while. Realizing the weaknesses of PHP and the cumbersomeness of C, I chose to learn Ruby for web and tool programming.

In 2013, just before finishing high school, a couple of friends and I founded rtificial, a demo group. We released a couple of 64kB intro videos at various demo parties and even won some awards. This involved a lot of tools coding in C++, dirty C and ASM hacks in MSVC, as well as graphics coding using the OpenGL C API and GLSL for the actual shaders.

Since then I’ve shifted my focus towards scientific computing, due to my studies. I did a lot of physics lab data analysis in Python (numpy, pandas, matplotlib), use a bit of Mathematica here and there, and been in touch with CERN ROOT (C++).

When I worked for SKZ, a plastics research company, I reverse engineered a BUS protocol for camera/lens communication. To this end I created specialized sniffing hardware and analysis software in Python as well as control hardware using an Arduino with the sofware in C.

I’ve played around with a couple of other languages throughout the years, like Lua, Java, Javascript, Haskell, …, but these never stuck. Using almost exclusively Linux as my desktop OS, I’ve come to my fair share of Bash/zsh scripting, but I’d shell out to Python once the task gets more complicated.

Sometimes I write about programming related topics on my blog.


After moving to Berlin, I started a new drama club: Wery Important Production Berlin.

Between 2013 and 2019 I was an active member of my univerity’s drama club Studi(o)bühne and took part in many productions. These were all in German.

All Plays

One of the more ambitions projects was Die Astronautin. Originally a radio drama produced by BR, we adapted it to the stage. While some parts were kept as audio-only, including my position as the male lead, the board computer, other scenes were expanded and staged. Working as a voice-only actor was a lot of fun.

The project most dear to me was Copenhagen by Michael Frayn. Being the producer as well director, later transitioning to acting, was an interesting experience managing all the different parts that have to come to gather for a complete show. The topic at hand—Heisenberg’s and Bohr’s involvement in the develoment of the nuclear bomb—was particularly pressing at the time and something I, as a physics student, was deeply interested and troubled by. Please take a look at the dedicated page for the play, as it feature a lot of background information, links to a publicly available BBC radio drama adaptation and much more.


I just finished my master’s in physics at Julius-Maximilians University Würzburg. For my thesis Analyzing Adaptive Multichannel Monte Carlo Integration and Event Generation I worked on improving the VAMP algorithm for numerical integration of phase space integrals, as are common in particle phyisics scattering experiments. This algorithm is a descendent of VEGAS, a prominent representative of the family stochaistic Monte-Carlo algorithms. To this end I’m mainly using Python in connection with the numpy numerics library. The thesis and implementation of VEGAS and VAMP are available on at

During my master’s, I studied abroad at the University of British Columbia, Vancouver, Canada. There I worked at the TRIUMF Particle Accelerator Research Center, writing an honour’s thesis A Systematic Study of Positron/Muon Tracks in the J-PARC/E36 Segmented Fibre Target. The goal was to improve an algorthim in the experiments data analysis pipeline that reconstructed flight trajectories from detector pixels. This was done in C++ using CERN‘s ROOT framework and Python for tooling.

I got my bachelor’s degree in physics from the same university, focussing on particle physics. In my thesis Contributions of Vector Leptoquarks to Kaon Decays I studied the properties of a proposed new gauge boson in a BSM theory and its implications for specific decay experiments.