Software engineer working across systems, developer tooling, and multimedia.
I like understanding how things work below the abstraction layer — and building tools when the existing workflow gets in the way.
My background spans C/C++, embedded systems and multimedia, with an increasing focus on developer productivity and AI-assisted tooling.
GitLab CI workflows without leaving Neovim.
Inspect and run pipelines, browse jobs and logs, retry jobs, and work with artifacts directly from the editor.
Lua · GitLab CI · Neovim
Conan 2.x integration for Neovim.
Manage profiles, packages, remotes and common C/C++ dependency workflows without turning the terminal into an archaeological excavation.
Lua · Conan · C/C++ · Neovim
An experimental local-first coding agent.
Exploring tool use, persistent sessions, approval boundaries, workspace context and multiple LLM backends.
Python · LLM tooling · Agents
ESP32-based sound level meter using an I²S MEMS microphone with real-time signal processing and frequency weighting.
A small reminder that sometimes software needs wires.
C/C++ · ESP32 · DSP · Embedded
My reproducible development environment for macOS and Linux, built around Nix and Home Manager.
Neovim, WezTerm, tmux, Git and AI-assisted development tooling — versioned instead of being reconstructed from increasingly unreliable memory every time a machine changes.
Nix · Home Manager · Neovim · Lua · Developer Tooling
My configurations and firmware experiments for the Corne (CRKBD) split keyboard.
- vial-crkbd-config — wired Vial/QMK build and custom keymap.
- zmk-corne-config — wireless ZMK build with custom hardware integration and a Cirque trackpad driver.
Because apparently buying a keyboard and simply using it would have been too easy.
C · QMK · ZMK · Zephyr · Embedded
C · C++ · Python · Lua · Rust · Go
Developer tooling · Build systems · Multimedia · Embedded systems · DSP · LLM tooling
I use Neovim, btw.