Berlin, Berlin, Germany
Maths and physics-oriented programmer, passionate about enriching the scientific computing ecosystem with solutions that have it all - efficiency, robustness, user-friendliness, and elegance. Refining analytical models and turning them into beautiful code is my raison d'être.
Technical lead role on the calculation-engine project within the OncologyOne suite of products for the radiotherapy of cancer. The calculation engine encompasses the modeling of particle beams and transport of particles through a patient to derive physical dose and other physical quantities. The calculation engine core is written in modern C++ and CUDA. This is accompanied by several higher-level Python and bash/PowerShell scripts. The development is numerics-intensive and designing components often takes us to the bleeding edge of medical physics, numerical mathematics, and algorithm design research. The role itself encompasses: - Considerations of software architecture on several levels, from specifying the internal modularization strategy and inter-module interfaces to translating medical physics articles into concrete development plans, - Technically managing a team of several developers - distributing everyday tasks and keeping track of their progress, advising project managers in assigning larger tasks, performing code reviews, - Interviewing and evaluating new candidates, - Monitoring and interpreting testing output, - Managing the build-system and testing infrastructure, - Managing external library dependencies, occasionally submitting upstream patches, - Concrete development and testing. The latter includes generating reference data through Monte Carlo simulations of radiation transport with the EGSnrc and Geant4 simulation packages.
Software development in several programming languages, primarily modern C++ and Python, with frequent excursions into C and various scripting languages such as bash and PowerShell. I have also done basic FPGA programming in VHDL. The type of development ranged from embedded to fairly high-level. Some specific projects: - Developing several C++ components of Cosylab's ScanOne system, including a low-level inter-board communication library for exchanging custom-protocol messages encapsulated directly in Ethernet frames. - Patching Linux device drivers as part of upgrading an embedded sensor board system. Solo project. - Developing a Python client for reliable high-throughput communication with an FPGA sensor board. Involved implementing a stack of three custom protocols on top of UDP, including an RUDP derivative and an AXI4-Stream protocol derivative. Solo project. - C++/Qt5 contributions to a software suite for controlling an X-ray image acquisition device and for the visualization, post-processing, and registration of acquired images. - Integrating several beam-line analog-to-digital converters into the EPICS and FESA control-system frameworks. During this time, I also took part in on-site commissioning activities at a 5-treatment-room proton therapy site over the course of four months, and on-site verification-and-validation activities at another proton therapy site. I have also been mentoring candidates on the Cosylab C++ academy program. This has been the case for most of my employment and my involvement with the academy program is ongoing.
Demonstrating in problem classes for the undergraduate course Probability and Statistics II and the first-year Physics course.