Biblioteki natywne, E2EE i WebAssembly
Rozwój bibliotek C++, komunikacja szyfrowana end-to-end, portowanie natywnego kodu do WebAssembly oraz integracje z aplikacjami webowymi, mobilnymi i desktopowymi.
Patryk Kisielewski
Projektuję i rozwijam oprogramowanie ze szczególnym uwzględnieniem bibliotek C++, szyfrowania end-to-end, integracji wieloplatformowych oraz systemów bezpiecznie uruchamiających i oceniających kod.
Toruń, Polska

Engineering focus
Łączę programowanie niskopoziomowe z projektowaniem systemów, które muszą działać w różnych językach, środowiskach i modelach wdrożenia.
Rozwój bibliotek C++, komunikacja szyfrowana end-to-end, portowanie natywnego kodu do WebAssembly oraz integracje z aplikacjami webowymi, mobilnymi i desktopowymi.
Systemy uruchamiające niezweryfikowany kod, izolacja procesów, limity zasobów, automatyczna ocena rozwiązań oraz architektura systemów online judge.
Projektowanie podziału odpowiedzialności w systemach, prowadzenie projektów technicznych, praca ze studentami oraz przekazywanie wiedzy podczas zajęć i wystąpień.
Featured work
Projekty zawodowe, akademickie i zespołowe pokazujące różne obszary mojej pracy inżynierskiej.
Projekt zawodowy · Simplito
Platforma dla programistów do budowania aplikacji z komunikacją, przechowywaniem danych i udostępnianiem treści chronionymi szyfrowaniem end-to-end w środowiskach webowych, mobilnych, desktopowych i XR.
Projekt zawodowy · Simplito · zwycięzca Open Call CORTEX²
Virtual Encrypted Meetings — projekt zwiększający prywatność i bezpieczeństwo komunikacji w środowiskach VR dzięki kompleksowemu szyfrowaniu end-to-end wiadomości i ochronie danych.
VEM został wybrany do grona 10 zwycięskich projektów Open Call #2 programu CORTEX². Simplito było organizacją wiodącą projektu i jedynym polskim finalistą tej edycji.
Open source · projekt akademicki i edukacyjny
Rozszerzalna platforma do organizowania zawodów programistycznych, kursów i laboratoriów oraz do automatycznego uruchamiania i oceniania przesyłanych rozwiązań.
Podstawy badawcze
Zanim powstał obecny system AlgoJudge, jego założenia były rozwijane w ramach badań i rozwiązań proof of concept przygotowanych podczas studiów oraz do prac dyplomowych. Dotyczyły one bezpieczeństwa w procesie uruchamiania zewnętrznego kodu bez jego weryfikacji oraz integracji zewnętrznego systemu sprawdzającego z Moodle.
Projekt zespołowy · projekt studencki
Konfigurowalne narzędzie do organizowania wydarzeń opartych na mapie i lokalizacji, takich jak gry miejskie, wydarzenia terenowe i marsze na orientację.
Projekt wyróżniony w konkursie WMiI UMK w kategoriach potencjału biznesowego i społecznego.
Professional experience
Od niskopoziomowego kodu i procesu budowania po bezpieczne, wieloplatformowe API — pracuję na granicach języków, systemów i modeli wykonania.
Rozwijam natywne biblioteki od konfiguracji procesu budowania po stabilne API i integracje z aplikacjami. Łączę C++ z WebAssembly oraz środowiskami webowymi, mobilnymi i desktopowymi, pracując przy tym ze współbieżnością, protokołami komunikacyjnymi i mechanizmami kryptograficznymi używanymi w rozwiązaniach E2EE.
SYSTEM MAP
Obszary, które łączę podczas projektowania, rozwijania i integrowania bibliotek.
Konfiguracja procesów budowania, praca z kompilatorami i toolchainami, kroskompilacja oraz przygotowywanie kodu dla różnych systemów i architektur.
Biblioteki statyczne i dynamiczne, linkowanie, projektowanie publicznego API oraz dbanie o kompatybilność źródłową i binarną.
Wątki natywne, pthreads, synchronizacja i bezpieczna praca ze współdzielonym stanem, a w przeglądarce także Web Workery.
Warstwy integracyjne i bindingi udostępniające kod C++ aplikacjom webowym, mobilnym i desktopowym, w tym portowanie przez Emscripten do WebAssembly.
Szyfrowanie symetryczne i asymetryczne, tryby pracy szyfrów blokowych, wektory inicjalizujące oraz zarządzanie kluczami, parami kluczy i współdzielonymi sekretami.
Projektowanie komunikacji, serializacja danych i JSON-RPC, walidacja granic systemu oraz świadome korzystanie z bibliotek zewnętrznych w kodzie związanym z bezpieczeństwem.
Speaking & teaching
Praktyczna wiedza inżynierska przekazywana podczas prelekcji oraz długoterminowej pracy projektowej ze studentami.
Wyróżniona prelekcja
Prelekcja wygłoszona jako przedstawiciel Simplito, poświęcona praktycznym problemom związanym z wykorzystywaniem natywnej biblioteki C++ w aplikacjach tworzonych w różnych językach oraz działających na wielu platformach.
Działalność dydaktyczna
Prowadzenie długoterminowych zajęć projektowych, podczas których studenci rozwijali system do automatycznego sprawdzania zadań programistycznych, pracując w tygodniowych sprintach i łącząc analizę wymagań, projektowanie, implementację, testowanie, automatyzację oraz dokumentację techniczną.
| Zajęcia | Okres |
|---|---|
| AlgoJudge | rok akademicki 2023/2024 |
| AlgoJudge2 | rok akademicki 2024/2025 |
Zajęcia ze studentami były realizowane dzięki grantowi „Ścieżki rozszerzone” UMK z programu „Inicjatywa doskonałości – uczelnia badawcza” (IDUB).
Zajęcia AlgoJudge(otwiera się w nowej karcie) oraz AlgoJudge2(otwiera się w nowej karcie) w katalogu UMK
Działalność popularyzatorska
Od 2017 roku przygotowuję na festiwal własne projekty-eksponaty i prezentuję je podczas wystaw — początkowo jako wolontariusz, a od 2024 roku jako prowadzący.
About
Jestem Software Engineerem w Simplito i magistrem informatyki Uniwersytetu Mikołaja Kopernika w Toruniu. Moje doświadczenie zawodowe obejmuje pracę przy rozwoju biblioteki C++ do komunikacji szyfrowanej end-to-end oraz jej integracji z WebAssembly (Emscripten) i WebRTC.
Od wielu lat interesuję się również systemami automatycznie uruchamiającymi i oceniającymi kod. Tematyka ta połączyła mój udział w zawodach programistycznych, prace dyplomowe, rozwój projektu AlgoJudge oraz prowadzone przeze mnie zajęcia.
Poza tworzeniem oprogramowania angażowałem się w działalność akademicką i społeczność informatyczną: prowadziłem zajęcia projektowe, przygotowywałem wystąpienia techniczne, kierowałem zespołem projektu Noxmap i pełniłem funkcję przewodniczącego Koła Naukowego Informatyków UMK.
Swoje umiejętności projektowania i analizy algorytmów oraz rozwiązywania złożonych problemów programistycznych rozwijałem m.in. dzięki udziałowi w programach grantowych Ministerstwa Nauki i Szkolnictwa Wyższego Najlepsi z najlepszych! 3.0(otwiera się w nowej karcie) i Najlepsi z najlepszych! 4.0(otwiera się w nowej karcie), wspierających wybitnych studentów informatyki WMiI UMK startujących w międzynarodowych konkursach programistycznych.
Publiczne profile
Projekty, kod i dodatkowe informacje o moim doświadczeniu znajdziesz na GitHubie i LinkedInie.