Patryk Kisielewski

Software Engineer

I design and develop software with a focus on C++ libraries, end-to-end encryption, cross-platform integrations, secure code execution and automated evaluation systems.

Toruń, Poland

Patryk Kisielewski outdoors in Toruń

Engineering focus

The areas I focus on

I combine low-level programming with system design for software that must work across languages, environments and deployment models.

Native libraries, E2EE and WebAssembly

Developing C++ libraries for end-to-end encrypted communication, porting native code to WebAssembly, and integrating it with web, mobile and desktop applications.

  • C++
  • E2EE
  • WebAssembly
  • Emscripten
  • WebRTC

Secure code execution and evaluation

Systems that run untrusted code, process isolation, resource limits, automated solution evaluation, and online judge architecture.

  • isolation
  • containers
  • runners
  • online judge
  • automated evaluation

Architecture, teaching and teamwork

Designing clear system responsibilities, leading technical projects, working with students, and sharing knowledge through classes and talks.

  • architecture
  • teaching
  • Scrum
  • technical speaking
  • teamwork

Featured work

Selected work

Professional, academic and team projects that represent different areas of my engineering work.

PrivMX

Professional project · Simplito

In development

A developer platform for building applications with end-to-end encrypted communication, data storage and content sharing across web, mobile, desktop and XR environments.

Role
Software Engineer on the Simplito team developing the C++ library and cross-platform integrations

Key elements

  • modular C++ Endpoint library
  • client-side end-to-end encryption
  • C++ browser integration through WebAssembly
  • libraries and wrappers for multiple languages and platforms
  • encrypted audio, video and screen-sharing streams
  • communication, file storage and custom events

Technologies

  • C++
  • E2EE
  • WebAssembly
  • Emscripten
  • WebRTC
  • TypeScript
  • CMake

VEM

Professional project · Simplito · CORTEX² Open Call winner

CORTEX² phase completed

Virtual Encrypted Meetings — a project enhancing the privacy and security of communication in VR environments through comprehensive end-to-end message encryption and data protection.

Role
Software Developer on the Simplito team

Key elements

  • secure communication in VR environments
  • end-to-end message encryption
  • user data protection
  • integration with a broader XR ecosystem

Technologies

  • E2EE
  • VR
  • XR
  • secure communication

VEM was selected among the 10 winning projects in the CORTEX² Open Call #2. Simplito was the project’s lead organisation and the only Polish finalist in this call.

AlgoJudge

Open source · academic and educational project

In development

An extensible platform for programming contests, courses and laboratories, built to run and automatically evaluate submitted solutions.

Role
Project initiator, instructor and software developer

Key elements

  • Client–Server–Runner architecture
  • multiple activity types
  • extensible task types
  • secure code execution
  • use in contests and courses
  • temporary accounts for short-term activities

Technologies

  • C#
  • ASP.NET Core
  • TypeScript
  • React

Noxmap

Team project · student project

Completed · no longer developed

A configurable tool for organising map- and location-based events, including urban games, field events and orienteering.

Period
2019/2020
Role
Team lead and server backend developer

Key elements

  • participant registration
  • map point configuration
  • automatic answer checking
  • reporting
  • real-time communication
  • participant safety mechanisms

Technologies

  • ASP.NET Core
  • SignalR
  • Blazor WebAssembly

Recognised in the NCU Faculty of Mathematics and Computer Science competition in the business and social potential categories.

Professional experience

Engineering experience

From low-level code and build processes to secure cross-platform APIs, I work at the boundaries between languages, systems and execution models.

C++ libraries, E2EE and cross-platform integrations

I develop native libraries from build configuration to stable APIs and application integrations. I connect C++ with WebAssembly and web, mobile and desktop environments while working with concurrency, communication protocols and cryptographic mechanisms used in E2EE solutions.

Languages and environments

  • C
  • C++
  • CMake
  • OpenSSL
  • SubtleCrypto
  • pthreads
  • E2EE
  • WebAssembly
  • Emscripten
  • WebRTC
  • JSON-RPC
  • JavaScript
  • TypeScript
  • Java
  • Kotlin
  • C#
  • Android
  • iOS
  • Electron

SYSTEM MAP

Technical scope

The areas I bring together when designing, developing and integrating libraries.

  1. Build, toolchains and architectures

    Configuring build processes, working with compilers and toolchains, cross-compilation, and preparing code for different systems and architectures.

    • build systems
    • compilers
    • cross-compilation
    • CMake
  2. Native libraries and binary contracts

    Static and dynamic libraries, linking, public API design, and maintaining source and binary compatibility.

    • static libraries
    • shared libraries
    • API
    • ABI
  3. Concurrency and execution models

    Native threads, pthreads, synchronisation and safe shared-state handling, complemented by Web Workers in browser environments.

    • threads
    • pthreads
    • synchronisation
    • Web Workers
  4. Cross-environment integrations

    Integration layers and bindings that expose C++ code to web, mobile and desktop applications, including Emscripten ports to WebAssembly.

    • bindings
    • WebAssembly
    • Emscripten
    • multi-platform
  5. Cryptography and E2EE

    Symmetric and asymmetric encryption, block cipher modes, initialisation vectors, and handling keys, key pairs and shared secrets.

    • OpenSSL
    • SubtleCrypto
    • keys
    • IV
    • shared secrets
  6. Protocols, data and security

    Communication design, data serialisation and JSON-RPC, boundary validation, and deliberate use of third-party libraries in security-sensitive code.

    • serialisation
    • JSON-RPC
    • validation
    • third-party C++

Speaking & teaching

Speaking and teaching

Practical engineering knowledge shared through a technical talk and long-term project work with students.

Featured talk

Low-level libraries in modern applications

A talk delivered as a Simplito representative, focused on practical challenges in using a native C++ library from applications written in different languages and running across multiple platforms.

Date
Venue
Faculty of Mathematics and Computer Science, Nicolaus Copernicus University in Toruń
  • C++
  • Java
  • Kotlin
  • Swift
  • JavaScript
  • TypeScript
  • Android
  • iOS
  • Electron
  • web
Talk page(opens in a new tab)

Teaching

AlgoJudge project classes

Long-term project classes in which students developed an automated programming-task evaluation system, working in weekly sprints and combining requirements analysis, design, implementation, testing, automation and technical documentation.

CoursePeriod
AlgoJudgeacademic year 2023/2024
AlgoJudge2academic year 2024/2025

The classes were made possible by the NCU “Ścieżki rozszerzone” grant under “The Excellence Initiative - Research University” (IDUB) programme.

AlgoJudge(opens in a new tab) and AlgoJudge2(opens in a new tab) courses in the NCU catalogue

About

About me

I am a Software Engineer at Simplito with a Master’s degree in Computer Science from Nicolaus Copernicus University in Toruń. In my professional work, I have developed C++ libraries for end-to-end encrypted communication, ported native code to WebAssembly with Emscripten, and built modules that support WebRTC and integrations that use it.

I have also long been interested in systems that automatically run and evaluate code. This area connects my participation in programming contests, degree projects, development of AlgoJudge and the project classes I have taught.

Beyond software development, I have been involved in academia and the local computing community: teaching project classes, preparing technical talks, leading the Noxmap team and serving as chair of The Scientific Society of Computer Science Students at NCU.

I developed my skills in algorithm design and analysis, as well as in solving complex programming problems, in part through participation in the Ministry of Science and Higher Education grant programmes Najlepsi z najlepszych! 3.0(opens in a new tab) and Najlepsi z najlepszych! 4.0(opens in a new tab) (“The Best of the Best”), which supported outstanding computer science students at the NCU Faculty of Mathematics and Computer Science competing in international programming contests.

Public profiles

Find me online

Explore my projects, code and further information about my experience on GitHub and LinkedIn.