Education
Bachelor of Science - Applied Computer Science
AGH University of Kraków
Kraków, Poland
Oct 2023 – Now
Thesis: JAX implementation of a parallel MPDATA solver for CPUs, GPUs and beyond
President of CS student scientific club KERNEL in years 2025-2026, board member in 2024-2025. Member of Mars Rover Software Team of AGH Space Systems in 2024-2025.
Collaborated with a team at University of Illinois Urbana-Champaign, contributing to an open-source, multi-language project. I worked with Python wheel packaging, pybind11/nanobind bindings, CI/CD, interfacing with Fortran and various other things.
Math-Physics-English class
II Liceum Ogólnokształcące w Koninie
Konin, Poland
Sep 2019 – May 2023
Graduated with perfect 100% scores in Math, Advanced Math, and Advanced Physics Matura exams.
I have earned the title of Laureate (3rd Place) in a Nationwide Physics Competition organized by Poznań University of Technology, and the title of Finalist in the Nationwide Physics Competition organized by AGH University of Kraków. I have also achieved Top 10% rankings in the Kangaroo International Math Competition and a Top 1% ranking in the Fox National English Language Competition.
Work Experience
CERN
Geneva, Switzerland
Jun 2026 – Sep 2026
Project Title: Exploration and Evaluation of non-LHC GPU Benchmarks for HEPScore4GPU.
Project Report: link
Summer Student Session Presentation: link
Selected from more than 14000 applicants, I completed a research project focused on GPU benchmarking within the IT Department, Computing for Experiments group, Worldwide LHC Computing Grid section (IT-CE-LCG).
My work involved containerizing HPC applications from various scientific domains (SPECFEM3D Globe, Quantum ESPRESSO, MILC QCD), collecting benchmark data with the HEP Benchmark Suite, and validating their reproducibility across multiple runs and on different machines (NVIDIA A100, V100, L4, T4). I also created and tested containers for SPECFEM3D Globe targeting AMD GPUs as well as CPU-only execution via MPI. I profiled the workloads with Nsight Systems and Nsight Compute. Additionally, I contributed some bug fixes and small features to HEP Benchmark Suite and HEPScore.
I presented my findings to fellow summer students and at group and section meetings. I also attended various CERN seminars and workshops, where I met notable figures such as Bjarne Stroustrup and Tim Mattson.
digatus
Remote
Feb 2026 – May 2026
I worked on extending a Qt application for the client's needs, writing both QML widgets and C++ modules. I also took part in testing, code reviews, and writing technical documentation. I discovered and fixed numerous bugs and created a CI pipeline for building and publishing the artifacts. On my own initiative, I built a Python TUI for real-time mocking of the data received by the app, which resulted in much faster and easier development and QA reviews.
Paul Scherrer Institute
Villigen, Switzerland
Jul 2025 – Sep 2025
I was a part of an interdisciplinary team, spanning physicists and software developers. My main line of work was involved analysing space radiation data from monitors aboard ESA's satellites (IREM and RADEM). All my work was done in Python.
I created automation scripts for parsing 100s of CDF files into HDF5 format. I developed algorithms for automatic detection of space events like radiation belt passages, solar energetic particles and Forbush decreases with NumPy and pandas. I prepared a series of exemplary Jupyter Notebooks showcasing the algorithms, and providing analysis of said events. I also begun the process of porting the functions to be JIT-compilable with Numba.
Personal Projects
Dec 2025 – Jan 2026
I created a web-based, high-performance image editor. It is built on top of the Nuxt 4 full-stack framework. The application utilizes WebGPU for accelerated computation. To ensure cross-browser compatibility, it seamlessly falls back to a WebAssembly implementation compiled from C++ with Emscripten.
A PostgreSQL database is used to store user information and image metadata, while the actual image files are kept in MinIO - an S3-compatible object storage. The entire application stack is containerized and orchestrated via Docker Compose.
Aug 2025 – Sep 2025
I developed a cross-platform C++17 library for building interactive, shell-like CLI applications with minimal boilerplate. C++ functions can be turned into callable commands with just one line. Thanks to template metaprogramming, function argument types don't need to be provided - they are automatically deduced, and also used to generate the help command output.
The library natively supports user-defined types, and CLIs can be nested to form sub-menus. With minimal changes to the original functions, different commands can share state across invocations. Input and output streams can also be controlled, allowing the resultant executable to be used as a script runner. The entire project is fully tested on CI, with GoogleTest and Valgrind across Linux, Windows, and macOS.
Sep 2024 – Dec 2024
I developed a lightweight, matrix-based math library in C. I implemented parallelized computation using OpenMP for multi-threaded CPU execution and CUDA for GPU acceleration. I used preprocessor macros to simulate default arguments that control which computing backend will be used. If an argument is not provided, a simple heuristic is used to make that decision. Makefile handles the compilation and installation of the library. I also built a small Flask webapp to host the project's documentation.
Open Source
Maintainer
Since: Oct 2025
nanobind_json serves as a seamless bridge for nlohmann::json objects with nanobind. A single header include is all you need to pass JSON data between Python and C++. The library is mentioned in the official nanobind documentation after a small email exchange with Wenzel Jakob.
I have taken over maintenance of the library, and fixed all issues to make it compatible with current nanobind versions. I also added tests and CI workflows. The library is built and tested on Linux, Windows, and macOS with their respective default compilers (gcc, MSVC, clang).
Contributor
Since: Jan 2025
I participated in bi-weekly meetings of teams at University of Illinois Urbana-Champaign and AGH University of Kraków. I was responsible for porting our library's C++ to Python bindings from pybind11 to nanobind, and switching to cibuildwheel for our wheel building procedure on the Github Actions CI. I developed an input checker, which helps to guard the users from making simple mistakes like typos. I also fixed the pdoc documentation, with the most hacky piece of Python code I have ever written.
Presentations
My journey of fixing an unmaintained package, spanning Python, C++, nanobind and Github Actions
Python Maven
Online
I was invited to give an online talk for the Python Maven community meetups. The bulk of my presentation was the same as my nanobind_json talk at Pykonik - however, with no strict time constraints, I could expand on the topic. I also added a small nanobind "crash-course" at the end, showcasing how to build a basic package, export class properties, use STL constructs, and even how to write your own custom type casters.
Engineering Fortran-to-Python Bindings in C++ with nanobind[_json] and cibuildwheel
EuroSciPy 2026 - European Conference on Python in Science
Kraków, Poland
I presented the lessons learned from the development of PyPartMC. I detailed our architecture for bridging the languages by leveraging Fortran’s ISO C Bindings and utilizing them in Python via C++ and nanobind.
I went over the technical hurdles required to make the library Pythonic, such as managing the garbage collection of Fortran objects or using nanobind_json. I shared our CI and packaging journey, using cibuildwheel to achieve a single pip install across all platforms, automating git submodules with Dependabot and employing undocumented CMake trickery to control our scikit-build-core build process.
PyPartMC: A Pythonic interface enhancing Fortran-based simulation package
EuroSciPy 2026 - European Conference on Python in Science
Kraków, Poland
In the poster, I outline the architecture of a multi-language project called PyPartMC, to which I am a contributor. PyPartMC serves as a Pythonic interface to PartMC, which is a 20-year-old, robust Fortran package for atmospheric aerosol simulations.
I describe the process of creating complex bindings from Fortran to Python, using Fortran's ISO C Bindings and nanobind. I also mention other architectural challenges, such as garbage collection and the maintainability of git submodules.
Dr. nanobind_json or: How I Learned to Stop Worrying and Fix an Unmaintained Package
Pykonik Tech Talks - Kraków Python User Group
Kraków, Poland
I presented my journey of fixing the nanobind_json package. I started by providing background on what pybind11 and nanobind are, and why I even needed the nanobind_json utility. I went over the interesting bugs that I encountered, and how a single line could cost me a couple of hours of work. I also showed how I developed the testing and CI for the library.

