Open source · Linux

Most of what I build ships in the open — compositors, workers, and the odd bot.

Building software since 2018, most of it in public. I daily-drive NixOS, write Rust and TypeScript, and put the results on GitHub — a Wayland compositor, bots on Cloudflare Workers, and a pastebin on R2. The paid Stream control plane stays private.

Selected work

Open-source projects and shipped services.

All repositories → (opens in a new tab)
Stream control room with one program feed and five relay destinations

2026

Stream

Browser-first multistreaming in early access: OBS pushes one signal in over WHIP, your own watch page is the program output, and the same signal leaves again as RTMPS to YouTube, Twitch, X, Kick and Telegram. Cloudflare Workers, Durable Objects, D1 and LiveKit underneath, prepaid hours on top.

TypeScriptdurable-objectslivekitrtmps

Viewport desktop shell showing its keyboard controls

2026 · ★ 3

Viewport

A Wayland compositor in Rust on Smithay whose entire shell — wallpaper, dock, window frames and titlebars — is a web page, composited zero-copy alongside native clients. Five interchangeable engine backends render that same page: WPE, WebKitGTK, Chromium, CEF and Servo.

Rustwaylandsmithaywpe-webkit

2018professional experience since
25technical posts
300+GitHub stars
Rust+ TypeScript, Nix

Latest writing

Notes from whatever I am taking apart.

All 25 posts →

Podman Quadlets

Quadlets describe a container as a systemd unit, so systemd owns the lifecycle instead of Podman.

NixOS Flakes

What a flake actually is: inputs, outputs, and a NixOS configuration with every dependency pinned.