8+ years building distributed systems, developer tooling, and real-time UIs.
Frontend β Backend β Platform/DevOps
I design the pipeline, then direct AI agents to implement it - building production-grade products in very different domains.
I build the whole path rather than a slice of it: the interface a user touches, the services behind it, and the infrastructure they run on. In practice that means catching problems as early as possible - types that make a broken state impossible to express, deployments that are a reviewed commit rather than a manual step, and enough metrics to know something is wrong before a user reports it.
- π Current Focus: Web3, Applied Cryptography, High-frequency event processing.
- π Architecture Style: Event-driven, Kubernetes-first, IaC-managed.
AI agents are a big part of how I work. What helps here is the combination of two skills: I can design the full pipeline of a task from problem to production - architecture, data, CI, runtime, rollback - and I have built real systems in very different fields: heavy web platforms, Kubernetes infrastructure, native Windows and macOS desktop apps, media playback and audio DSP, game modding. When the same person designs the pipeline and understands each domain in depth, AI agents become a real help instead of a risk.
I don't just give tasks to agents and trust the result. I write the requirements, the constraints, and the validation test cases in advance, and then I check what the agent produces against them. A feature isn't considered done until all important edge cases are covered, the security check passes, and the performance requirements are met. I don't lower these requirements just because the agent works fast. The Selected Work below is the evidence.
I prefer a pragmatic, problem-first approach. I select tools based on specific constraints and architectural fit, adopting new technologies when they offer a superior solution.
The table below highlights my core, production-proven stack that I use most frequently:
| Domain | Key Technologies |
|---|---|
| Core Backend | |
| Data & Messaging | |
| Platform / Ops | |
| Frontend |
Production-grade projects in five very different domains - this variety is intentional. Each one has a permissive license, full documentation, and real users.
Local files, links and live torrent streaming in one window - Tauri 2 + libmpv, frame-accurate, with an unusual amount of attention to detail.
I genuinely believe this is the best video player on earth by UI/UX and by the feature set you actually get.
- Send it to the TV in full quality, and keep the remote: as far as I know the only desktop player - outside full media servers with their own native TV apps - that casts a 4K HEVC HDR file with Dolby audio to a television as it is: no re-encode, no quality loss, no stutter, while the app window stays a working remote (seek, chapters, skip-intro, next episode). Google Cast and DLNA, chosen per device and per file; a copy is prepared only when the set truly can't take the original, and even then the video is stream-copied.
- Torrents play while they download: a magnet link becomes a queue you can start in seconds - piece priority follows the playhead, the seekbar shades what has already arrived, embedded subtitles attach themselves, the next episode is prefetched. Castable mid-download; seeding off at compile time.
- A real interface, not an OSC script: mpv renders into a native child view behind a transparent webview, the whole UI composited on top as HTML - mpv-grade decoding (hardware acceleration, HDR10+/Dolby Vision) with none of the usual UI compromises. On macOS this meant patching libmpv itself, since its backend has no
--widsupport at all. - Details measured, not assumed: previews sharpen to the exact frame under the cursor (naive keyframe mapping showed the wrong scene 60% of the time), exact-seek cost is probed per file, subtitles are matched by file hash rather than by guessing the rip, and your audio/subtitle choice is re-found in the next episode by language and codec - never by track index. Plus everything else: frame stepping, resume-anywhere, mini player, HDR-correct frame export, layout-independent rebindable hotkeys, RU/EN, and signed auto-updates built by CI for both platforms.
Repository β’ Download
A real-time gambling platform where every round can be proven fair - running on a Kubernetes cluster I built and operate myself, across bare metal and cloud.
- Provably fair, not "trust us": a custom HMAC-based RNG over a server seed committed before the round and a client seed the player controls. The commitment is published up front and the seed revealed after, so anyone can recompute the outcome and confirm the house didn't touch it.
- Rounds survive a deploy: a game in progress lives in a Temporal workflow rather than in a server's memory, so a restart or a release doesn't drop it. Live play runs over WebSockets (Socket.IO) alongside ordinary HTTP.
- Infrastructure as code, end to end: Talos Linux + Kubernetes spanning bare metal and cloud, described in Pulumi, with every change applied by GitOps (FluxCD) instead of by hand - and secrets that never live in the repo (External Secrets / Infisical). Cloudflare + DragonflyDB in front for edge caching.
Lightweight system-tray widget that talks directly to wireless gaming peripherals over HID - no vendor bloatware (G HUB, SteelSeries GG, iCUE) required.
- Six vendors, none of whom document this: Logitech HID++ 2.0, SteelSeries, Corsair, HyperX and PlayStation DualSense are each queried directly over USB HID, from protocols reverse-engineered rather than published.
- Stays out of the way: native Win32 rendering via
windows-rs(Direct2D / DirectWrite), LTO-optimized, under 10 MB resident. - Adding a device is one file: every peripheral sits behind the same trait, so a new one is a single driver module.
Takes the dub you want from a low-quality release and puts it onto the good video, lined up automatically.
- The problem: the 4K release ships only the original audio, and the dub you want exists only in an old rip that is cut and timed differently. dubsync finds the offset between them by itself and produces one file with both.
- And it knows when it isn't sure: the two soundtracks are correlated to find the alignment, and every result carries a confidence score - so a bad match is reported rather than silently shipped (GCC-PHAT with peak-to-sidelobe scoring, parallelised).
- The awkward cases are handled: differently-cut releases are aligned segment by segment to ~50 ms, frame rates normalised, audio time-stretched instead of clipped, subtitles shifted to match. GUI, CLI and headless modes on Windows/macOS/Linux.
Polished, claims-aware death-recovery system for Forge 1.20.1 - preserves inventory structure, respects land-claim mods, zero data loss.
- Structure-preserving recovery: armor returns to armor slots, auto-equip on retrieval, 10-minute loot protection, return markers up to 256 blocks.
- Plays nicely with other mods: Curios, FTB Chunks, Open Parties & Claims and Flan are each supported when present and cleanly ignored when they aren't - no hard dependencies.
- Your stuff cannot be lost - not in the void, not inside someone else's claim, not with a full inventory. Anything a grave can't hold goes into a virtual vault instead. Released to Modrinth and CurseForge by CI.
nestjs-zod (Original Author)
The standard way to use Zod with NestJS - ~150K downloads/month across the ecosystem.
- Removed the need to describe the same data twice: one schema now serves validation, types and the generated API docs.
- Status: Transferred to another maintainer (I stopped using NestJS)
eslint-kit (Author)
Preset-based ESLint configuration: one short config instead of the usual sprawl of plugins, parsers and rules - across different frontend and backend stacks.
- Status: largely obsolete today - Biome does in one fast binary what this worked around. It was the right answer while ESLint was the only game in town and every stack meant assembling a zoo of configs and plugins that integrated badly with each other.