I’m a freelance software developer based in Berlin, Germany. I work on low-level software like operating systems (kernels and drivers alike) and firmware for embedded systems. My main interest is using strong type-safety and zero-cost abstractions to write software for resource-constrained and timing-sensitive applications with good performance with better robustness and correctness than with other approaches. My tool of choice for this is usually C++, with Rust being an increasingly viable alternative.
Even before my professional career I have been a long-term C++ enthusiast, having worked mostly on game console emulators. You can read more about my background on my resume.
I fixed a lot of really cool GPU emulation bugs, and eventually became the maintainer of the GPU emulator subsystem. I also revamped parts of the user interface for a more user-friendly experience, implemented Dolphin’s (at the time very overdue) hardware testing framework, and managed the release of two major emulator versions.
I implemented PPSSPP’s software renderer as a reference backend. At a time where few games were rendering properly with the existing OpenGL renderer, the software renderer provided us with a useful tool to see what assumptions were breaking the other backend and consequently helped us understand what needs to be addressed next. This project also taught me a lot about algorithms used in 3D renderers and about their implementation in hardware.
I cofounded Citra, the first functional 3DS emulator, back in 2014. I designed the graphics emulation core and implemented the software renderer. To ensure correctness of the written code, I developed various debugging utilities and testing infrastructure. I also created some tools for users to dump content from their 3DS and wrote introductory documentation to help people get started with citra development.