Matjaž Payrits

Senior CUDA Math Libraries Engineer at NVIDIA

Berlin, Berlin, Germany

About

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.

Experience

  • Senior CUDA Math Libraries Engineer - Data and Image Compression at NVIDIA
    Jul 2024 - Present · 2 yrs 1 mo

  • Cosylab (Ljubljana, Slovenia)
    • Lead Software Engineer
      Mar 2020 - Jul 2024 · 4 yrs 5 mos

      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 Engineer
      Jan 2017 - Mar 2020 · 3 yrs 3 mos

      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.

  • Graduate Teaching Assistant at Imperial College London
    Nov 2012 - Jun 2013 · 8 mos

    Demonstrating in problem classes for the undergraduate course Probability and Statistics II and the first-year Physics course.