The importance of strong types
3/29/2025Where weak types just aren't enough...
I love understanding systems deeply and using that knowledge to build fast, reliable software. My work spans multiple domains, but efficiency remains the common denominator. I care about performance, implementation detail, and the parts of software that most people never see, but can definitely feel the impact of.
GPU work, rendering, and anything visually interactive tends to land closest to my interests. Game development is what began my journey in programming.
C, C++, Rust, and even x86 assembly are the tools I use to build efficient and performant software - and the only tools that let me have a solid understanding of what my code really does.
Computer vision, embedded systems, PCB design and IoT are the areas that allow me to combine software and hardware development. Which is something I'm getting into more and more.
A chronological grid of what I have built, ordered from latest to earliest work.
Filter by tag
Showing all projects
Remastered 16x16 WS2812B matrix display controlled by a Raspberry Pi Pico W.
Controlled via Wi-Fi TCP socket with a Raspberry Pi Pico W. It's both a usable decoration for my room and a project to learn more about embedded-specific things (lwip TCP networking, flash memory, timers, DMA and so on).
Analog audio to digital USB audio converter.
Device that converts analog Jack audio signal to digital USB audio. Powered by a Raspberry Pi Pico and an OPA2134PA operational amplifier.
It was a personal project I started in order to eventually be able to play my digital piano (that only has an analog Jack output) in silence.
Soon turned out to be a cool project I can learn new things from and one which I can work on improving the sample audio quality on and on.
Autonomous and remote-controlled DIY car with Raspberry Pi 5 onboard.
Features a CH32V003 chip on a custom PCB for PWM control. RPi 5 communicates with the chip over I2C using a simple register->value protocol.
The frame, the steering system and wheel mounts are all 3D printed parts assembled together either with LEGO-inspired pins or M3 screws.
It's my first project related to computer vision which I used to implement the aforementioned autonomous capabilities. The source video feed comes straight from the RPi Camera Module 2 that is mounted on the car and is being analyzed in real time.
There also is the fun manual mode in which the user can steer the car from their PC with a gamepad while viewing the live video feed from the car's camera.
C++ SIMD-intense software rasterizer with unique visual style.
A week-long project to learn a bit about SIMD and software rasterization. Instead of triangles it uses "Patches" which makes the rasterization much faster and also produces cool-looking geometry.
Also, it proved that MSVC is not that good at auto-vectorisation... Take a look at the Benchmarks section on the github page.
2024 GMTK Game Jam entry - made in 4 days. The theme was "BUILT TO SCALE".
Game made by me and my friend in 96 hours for the 2024 GMTK Game Jam.
The theme was "BUILT TO SCALE" so the main goal of the game was to reach a space station by scaling nearby planets. The bigger the planet was, the stronger its gravity got. The game got it's name from an actual maneuver performed to change the direction and speed of a spacecraft, usually to save propellant.
Raycaster made fully in x86 64-bit Assembly without the standard library on x64 Windows.
The project started out as a challenge where I wanted to make a "3D" rendered without ANY external libraries except for Windows OS calls which were used only for system-level operations.
It's a partial implementation of Lode Vandevenne's Raycasting Tutorial.
Assembly learning project, low-level optimizations and basic SIMD. Trigonometric functions are implemented using the Taylor series.
16x16 WS2812B matrix display controlled by a Raspberry Pi Pico W.
It's both a usable decoration for my room and a project to learn more about embedded-specific things (lwip TCP networking, flash memory, timers, etc.
"Resurrected" an old 10+ year old RC car.
A fun idea I got after my dad had found my old (10+ years old) RC car. Turns out that making an RC car almost from scratch is not that hard...
Remastered the previous game console, now with a custom PCB.
A much-improved version of the previous generation game console, now with a custom PCB. Still powered with Raspberry Pi Pico!
High performance GPU-driven rendering engine designed for dynamic applications.
Passion project for learning and experimenting with graphics programming.
Game console powered by Raspberry Pi Pico and an ST7735 LCD display. First generation version.
Game console powered by Raspberry Pi Pico and an ST7735 LCD display. First generation version.
Raytracer made with Rust and Ash (Vulkan API for Rust). Partial implementation of the Ray Tracing In One Weekend tutorial.
Raytracer made with Rust and Ash (Vulkan API for Rust). Partial implementation of the Ray Tracing In One Weekend tutorial.
Particle Life simulation made in Rust. Inspired by Tom Mohr's video on particle systems and emergent behavior.
Particle Life simulation made in Rust. Inspired by Tom Mohr's video on particle systems and emergent behavior.
Top-down roguelike game made with a friend in 48 hours for 2022 GMTK Game Jam.
The 2022 GMTK Game Jam theme was 'Roll of the Dice'.
Similar to Vampire Survivors.
First attempt at making a rendering engine using Vulkan. Ended up as a wannabe-game-engine with significant time investment.
First attempt at making a rendering engine using Vulkan. Ended up as a wannabe-game-engine with significant time investment.
A clone of the well-known 2048 game. Project for learning OpenGL and game engine architecture.
A clone of the well-known 2048 game. Project for learning OpenGL and game engine architecture.
First bigger C++ project and first attempt at learning OpenGL. Inspects and visualizes 3D models.
First bigger C++ project and first attempt at learning OpenGL. Inspects and visualizes 3D models.
An entry for Bored Pixels Game Jam 8. Placed 32nd in immersion category and 56th overall.
An entry for Bored Pixels Game Jam 8. Placed 32nd in immersion category and 56th overall.
My mobile game released on Google Play store.
Simple platformer where you control a ball and try to get it to the end of the level.
Made in Unity.
More projects are on the way.
Where weak types just aren't enough...
Implementing Programmable Vertex Pulling and optimizing Per-Vertex memory usage.
Gone from the Google Play Store forever.