Dawid Pietrykowski Software Developer

My Expertise

I have a strong inclination towards understanding the inner workings of various programming components.

This has led me to gain hands-on experience across a wide range of technologies, spanning from low-level intricacies such as C, RTOS, and Embedded systems, to more advanced concepts like compute shaders, and even high-level languages such as Java and Python for application development. Beyond my expertise in coding, I have also honed my skills in managing servers, virtual machines, Docker containers, and networking.

I firmly believe that a comprehensive understanding of all facets of software engineering, or at least a broad overview, is vital when it comes to designing architecture and optimizing both computational and development efficiency.

Code

I have a deep appreciation for utilizing lower-level languages like Rust or C/C++ due to their direct control over hardware and high performance capabilities. The ability to optimize code at a granular level and squeeze out every bit of efficiency is truly fascinating to me.

However, I also recognize the value of incorporating other programming languages such as Python, C#, and Java. I tailor my approach to different projects and leverage the unique strengths of each language.

Tools / Frameworks

In terms of game engines, I'm quite versitile and have experience with Unity, especially in terms of AR and VR development targeting desktop and mobile platforms. That said I have also made 3D applications without using any game engine but rather using OpenGL and Vulkan APIs.

On the backend side, I have experience with Java frameworks such as Spring and Quarkus, as well as Rust frameworks such as Leptos and some basic Python servers. In terms of deplyoment, I have experience with Docker, Kubernetes, Proxmox and other virtualization technologies.

Featured Projects

attractors

Attractor visualizer

Featured Skills

  • Rust
  • GLSL
  • Vulkan
  • egui

Shader-based visualization of the Lorenz, Clifford and Dream attractors, app draws paths taken by thousands or millions of particles and is capable of animating the function variables and post-processing.

Source code soon
Ray-traced render

GPU Ray Tracer

Featured Skills

  • C++
  • GLSL
  • OpenGL

Compute Shader based real-time path tracing renderer with support for loading meshes and textures, physics-based ray tracing with refractions and reflections. Program allows real-time rendering with mouse and keyboard movement and averaged, more accurate rendering when camera is still.

Project page
Atom

AirShare, Nearby-share server

Featured Skills

  • Rust
  • Protobuf
  • Tauri
  • HTML/CSS/JS

Nearby-share server capable of receiving files sent over local network.

Project page
Ray-traced render

ESP32 LED Driver

Featured Skills

  • Embedded C
  • HTML/JS/CSS
  • FreeRTOS

WS2812b LED controller based made for ESP32 microcontroller. Uses the I2S interface with custom data packets for sending data to the addressable LEDs. Accepts HTTPS requests and serves a small website from it's filesystem, the website allows for changing the LED animation, color and other parameters. Also exposes an endpoint which allows for streaming the color data and has 3 capacitive touch inputs.

Source code soon
Atom

ESP32 LED Display

Featured Skills

  • C++
  • HTML/CSS/JS
  • Websockets
  • PCB Design
  • Soldering

Interactive display based on 8x8 LED grid panel.

Project page
Atom

ESP8266 Weather Server

Featured Skills

  • C++
  • PCB Design
  • Soldering
  • I2C

Weather station based on ESP8266 and DHT sensor with local data logging, HTTP server, NTP time and WakeOnLan functionality

Project page
Bike Logger PCB

Atmega328P Bike Logger

Featured Skills

  • C++
  • PCB Design
  • Soldering
  • I2C

Atmega328P-based energy efficient sd card logger for a bike. Measures wheel revolutions using a hall effect (magnetic) sensor. Uses interrupts and deep-sleep to save battery.

Project page
Atom

Atmega328P Thermometer

Featured Skills

  • C++
  • PCB Design
  • Soldering
  • I2C

Functional thermometer with a 4 digit 7 segment display allowing for displaying a wide range of temperatures. Thermometer has a probe on a long cable allowing it to be put inside harsh conditions without risking the device itself. Also contains a battery with a charging circuit and a switch. The case is designed and 3D Printed by me.

Project page
Ray-traced render

HReader

Featured Skills

  • C#
  • Python

Interactive data visualization tool for Facebook Messages.

Project page
Atom

Expense Tracker

Featured Skills

  • Java
  • Spring
  • PostgreSQL
  • HTML/CSS/JS

Website made for tracking expenses. Supports multiple users, multiple categories and password hashing.

Source code soon
Atom

Personal Server

Featured Skills

  • Docker
  • Linux
  • Networking
  • Proxmox / Virtual Machines

I'm personally hosting and managing this website, together with over 20 other personal services and virtual machines for my customers.

Atom

Hydrogen Atom Visualization

Featured Skills

  • C++
  • GLSL
  • OpenGL

Shader-based visualization of the hydrogen quantum wave function, capable of rendering an image showing the probability cloud of an electron at different energy levels.

Project page

Additional projects include:

- Software handling automation in agriculture utilizing machine vision and communication with hardware
- Service written in Rust, which allows saving/deleting/modifying data using a simple http request, which creates an easy way to store or send data between devices
- CLI tools written in Python, Bash or Rust mostly to manage personal servers
- Discord bot which allows communication with locally run open-source large language models