Skip to content
View mikolajlubiak's full-sized avatar
🧙‍♂️
C++ wizardy
🧙‍♂️
C++ wizardy

Organizations

@MathBoardProject

Block or report mikolajlubiak

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mikolajlubiak/README.md

Mikołaj Lubiak

Systems programmer. C and C++ for a living and for fun.
Into OS internals, embedded Linux, real-time rendering, game engines, and profiling.
Outside code: biking/bikepacking.

Email Website LinkedIn Codeberg

Resume · PGP key · Signal · PeerTube


Contributions

Contribution What I did How it works
Intel® Cryptography Primitives #95 Fixed a redundant pointer assignment in the SHA hashUpdate path In a multithreaded environment, writing a shared pointer twice forces other cores to invalidate their caches for that address. The redundant write caused extra cache-line bouncing; removing it gives ~10% less CPU time and ~50% fewer instructions in multithreaded hashing workloads. 21 files changed.
FTXUI #938 Added SliderWithCallback component to FTXUI, merged by maintainer Extends Slider with a std::function callback that fires on every value change, so actions can run without polling. 4 files, 90 additions.
PagedOut! #6 Published a technical article Gynvael Coldwind's free-form hacker/systems-programming zine.

Projects

Project What it does
terminal_animation stars Converts video, GIFs, and images into colored ASCII art in the terminal at the source frame rate. A decoder thread pulls frames via OpenCV/FFMPEG and converts pixels to RGB-escaped characters; a separate render thread drives the FTXUI TUI. Threads synchronized with mutexes and std::atomic shared state. 27 Google Test unit tests. C++20.
vlkn Vulkan 3D renderer and game engine in C++20. 13+ abstractions over the Vulkan API: physical/logical device, swap chain with auto-resize, multi-pass rendering (opaque geometry + point-light billboards + ImGui overlay), OBJ model loading with vertex deduplication, mipmapped textures with anisotropic filtering, up to 16 dynamic Blinn-Phong point lights, 6-DOF camera at 512 Hz, push constants, descriptor sets, fixed-timestep game loop.
gos x86 OS from scratch. Stage 1 fits inside the 512-byte MBR and loads Stage 2 (a full C program) from disk via LBA-to-CHS conversion with retry logic. Stage 2 has a FAT12 driver (BPB parsing, FAT table traversal, root directory search, cluster-chain following) and loads the kernel. Custom printf, memcpy, memset, and string functions for 16-bit real mode. NASM + C (Watcom compiler).
pixelpin + app Wearable ESP32 e-paper badge. The Flutter app converts an image to RGB565 and streams it over BLE using a custom binary protocol with text-based command framing and raw data streaming. ESP32 firmware accumulates chunks through a state machine into two 1-bit framebuffers, runs Floyd-Steinberg dithering to map each pixel to black, white, or red, then refreshes the 2.9-inch tri-color e-paper display. Enters deep sleep after 5 minutes. C++ + Flutter.
espcon Embedded game console engine on an ESP32-S3. Software 3D rasterizer (no GPU) loads OBJ meshes from on-chip LittleFS, runs model-view-projection, painter's-algorithm depth sorting, dot-product directional lighting, and pushes RGB565 frames to a TFT display over SPI at ~80 MHz. FreeRTOS for task management; GPIO buttons and ADC joystick with deadzone filtering.
vectng 2D game engine built from scratch around an Entity-Component-System (ECS) architecture. Components include TransformComponent, SpriteComponent, Animation, ColliderComponent, GravityComponent (with sweep AABB collision: resolves X and Y axes independently), KeyboardController, ScrollComponent, and TileComponent. 55 unit tests. SDL2 + SDL_image.
physics_automata Interactive falling-sand physics simulation using cellular automata. Each cell carries a feature bitfield (Fluid / Solid / Gas / Moveable / Immovable). Every frame, movable solids fall straight down or diagonally with shuffled direction order; movable gases disperse downward in randomized directions. Mouse drawing with adjustable brush radius. Rendered via raylib OpenGL render texture updated each frame.

Pinned Loading

  1. terminal_animation terminal_animation Public

    Cross-platform C++ application that converts video files, GIFs, and images into real-time colored ASCII art rendered directly in the terminal. It features a multithreaded frame-processing pipeline …

    C++ 16

  2. pixelpin pixelpin Public

    PixelPin is a wearable e-paper display pin powered by an ESP32. It receives images over Bluetooth Low Energy (BLE) from a companion Flutter app using a custom binary protocol, applies Floyd-Steinbe…

    C++ 5

  3. espcon espcon Public

    From-scratch embedded game console engine running on an ESP32-S3 microcontroller. It features a fully CPU-based software 3D rendering engine — no GPU, no accelerator — that loads Wavefront OBJ mesh…

    C++ 4

  4. vlkn vlkn Public

    A Vulkan-based 3D renderer and game engine written in C++20. This project demonstrates a complete Vulkan rendering pipeline including physical/logical device management, swap chain handling, a mult…

    C++ 3

  5. gos gos Public

    A from-scratch x86 operating system demonstrating low-level systems programming: a 2-stage real-mode bootloader written in NASM and C, a FAT12 filesystem driver, BIOS interrupt usage, disk I/O, and…

    C 2

  6. MathBoardProject/MathBoardAlgoML MathBoardProject/MathBoardAlgoML Public

    C++ 2 3