Mikołaj Lubiak
Senior Software Engineer · Embedded Linux & Systems
I build low-level software that has to be correct, fast and secure: embedded Linux platforms and security-critical system services at work, and real-time renderers on my own time. Based in Warsaw, Poland.
Email me
LinkedIn
GitHub
What I do
I’m a senior software engineer at Xperi, where I work on the security and provisioning side of a Linux-based smart-TV operating system. My work runs from the boot chain to the cloud: secure boot and device identity, factory and over-the-air provisioning, platform hardening and vulnerability response across the kernel and user space. I write C and C++ for the kernel, bootloader and system services, and Python for provisioning tools and automation.
I also review a large share of my team’s code, mentor newer engineers and coordinate fixes with other teams when a security issue cuts across the platform.
Outside work I build things to understand how they work: Vulkan and software renderers, an x86 boot chain and firmware for microcontrollers.
Open source
-
Intel Cryptography Primitives Library · PR #95
Fixed a multithreaded cache-thrashing bug in SHA-1/SHA-2 hash dispatch, where a shared function pointer was rewritten on every call, and measured it with perf: −48% instructions, −32% cache references and −10% CPU time in a 12-thread SHA-256 benchmark. Intel shipped a fix for the issue in v1.4.0.
-
FTXUI · PR #938
Added slider change callbacks (SliderOption::on_change) to this 10k-star C++ terminal UI library, shipped in v6.0. My terminal_animation app is listed in the project’s showcase.
Selected projects
vlkn — Vulkan rendering engine
2024
A C++20 Vulkan renderer with a quaternion 6-DOF camera, an 8-texture sampler array with anisotropic filtering, Blinn-Phong lighting with 16 animated point lights, a fixed 512 Hz simulation loop and an ImGui debug overlay, built on swap-chain recreation (MAILBOX with FIFO fallback), two frames in flight synchronized with fences and semaphores, staging-buffer uploads, depth buffering, descriptor sets and push constants.
Source: vlkn — Vulkan rendering engine
ESPCon — real-time 3D on a microcontroller
2024
A real-time 3D renderer for an ESP32-S3 with no GPU: hand-written vector and matrix math, back-face culling, flat lighting and depth sorting, with triangles pushed over SPI to TFT displays and OBJ meshes loaded from an on-flash LittleFS filesystem.
Source: ESPCon — real-time 3D on a microcontroller
PixelPin — Bluetooth e-paper badge
2025
A wearable ESP32 badge with an E Ink display. The firmware speaks a custom Bluetooth Low Energy protocol that streams images in MTU-sized chunks into two 1-bit framebuffers and deep-sleeps when idle, waking on a GPIO pin; a Flutter app converts and dithers images on the phone. Published in Paged Out! #6.
Write-up: PixelPin — Bluetooth e-paper badgeSource: PixelPin — Bluetooth e-paper badgeApp: PixelPin — Bluetooth e-paper badge
GOS — x86 boot chain
2024
A two-stage x86 boot chain: a 512-byte NASM boot sector walks a FAT12 filesystem to load a 16-bit C second stage with its own small libc and FAT12 driver, using BIOS disk services with retries. Debugged in QEMU and Bochs.
Source: GOS — x86 boot chain
All projects →