Dawid Pietrykowski Software Developer

My Expertise

I am a Systems Engineer with a focus on embedded development and hardware emulation tooling. Currently, I operate at the intersection of hardware and software, developing an emulation framework in C and C#. My work involves deep, low-level execution analysis and debugging bare-metal applications and RTOS environments.

I have a strong interest in instruction set architectures and systems-level development. Outside of my professional role, my language of choice is Rust. I use it heavily to build custom CLI and GUI (egui) utilities for my own workflows, and I have made open-source contributions to terminal projects like Zellij and Lazygit. My most comprehensive personal project to date is a fully functional RISC-V emulator built from scratch in Rust.

Featured Projects



RISC-V Emulator running DOOM

RISC-V Emulator

Featured Skills

  • Rust
  • Computer Architecture
  • Hardware Emulation
  • OS / Bare-Metal

A fully functional RISC-V emulator built from scratch in Rust, capable of executing complex userspace applications and booting full operating systems like xv6. It supports both 32-bit and 64-bit architectures, featuring a simulated MMU with virtual address translation and paging, alongside full ELF parsing and memory mapping.

The engine implements the RV32/64-IMFDA instruction sets, privileged architecture, and system call handling. It operates in two primary modes: a userspace mode with host syscall passthrough, and a bare-metal execution mode that simulates hardware peripherals including UART, PLIC, and VIRTIO. Backed by automated Coremark benchmarks and a comprehensive test suite, the emulator is performant enough to run a custom port of DOOM at ~45 FPS via a simulated framebuffer.

Project page
ccdrop web interface

ccdrop

Featured Skills

  • Rust
  • Cryptography
  • CLI / Web
  • Docker

An end-to-end encrypted (E2EE) file-sharing utility designed for secure data transfer between devices. Files are routed through a remote remote server but arrive already encrypted, utilizing zero-knowledge, client-side AES-256-GCM encryption and decryption.

The project supports 2 clients: an optimized, native Rust CLI for terminal access, and a WASM-backed webpage for easy access from the desktop.

Project page
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.

Project page
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

rust-exif

Featured Skills

  • Rust
  • CLI Development

A command-line media management utility designed to streamline photography and video workflows. It scans directories to filter media based on specific EXIF metadata criteria such as star ratings or labels and performs batch operations like copy, move, delete and more.

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

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