Full-stack developer · Linux
I build software that lives close to the metal and ships to the edge.
12 years of web applications, from database to frontend. I daily-drive NixOS, write Rust and TypeScript, and build everything in the open — a Wayland compositor, bots on Cloudflare Workers, and a pastebin on R2.
Selected work
Open-source projects and shipped services.

Codebam 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.

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.

Telegram Bot for Cloudflare Workers
A lightweight, type-safe Telegram bot framework for Cloudflare Workers: handlers chain off the incoming Request, middleware runs before them, and one URL registers the webhook. 214 forks and 120 releases on npm.
Read the docs → (opens in a new tab)Source (opens in a new tab)

Tux Robot
The bot that grew out of the framework, rebuilt on grammY: one Cloudflare Worker for the conversation, Cloudflare AI for the answers, Tavily for web search and document retrieval, and a Svelte 5 web app in front of it all. Live at t.me/TuxRobot.
Message the bot → (opens in a new tab)Source (opens in a new tab)

Pastebin R2
A pastebin on Cloudflare Workers in TypeScript with Hono, storing objects in R2 behind a small REST API — create, update, list, info, delete — with syntax-highlighted and plain-text views, and pastes that expire on their own.
Open pastebin → (opens in a new tab)Source (opens in a new tab)
Latest writing
Notes from whatever I am taking apart.
How I survived a DDoS Flood
CloudFlare L3/L4 is amazing. Today I not only survived a DDoS attack. My site didn’t even go down. W Cloudflare!
EmDash and Cloudflare Workers
A post explaining that this blog has migrated from SvelteKit to EmDash
USB Cable Testing on Linux
usbmon turns Wireshark into a cable tester, and finds retransmissions on cables that supposedly work.
Secure Boot NixOS UKI Installer
A flake that builds a signed unified kernel image, for rescuing a Steam Deck locked out by Secure Boot.
Podman Quadlets
Quadlets describe a container as a systemd unit, so systemd owns the lifecycle instead of Podman.
Email bot
Cloudflare email routing plus Workers AI: an inbox that answers its own mail.