blog
zig · code · pixels · sound — technical deep-dives, told as a narrative of discovery.
movycat — When Simple Isn't: Seeking and Pausing
Time travel is not a constant-time operation. Landing between keyframes, flushing the codec, and rebasing the clock.
12 / 2025
movycat — Real-Time Video: From Decode to Display
Full-motion video in a text terminal — a ring buffer, an audio clock, and the pipeline that keeps them in sync.
12 / 2025
Whisper on the Radeon 890M: Local Speech-to-Text with ROCm
ROCm finally supports Strix Point — and I had the perfect use case: replacing Wispr Flow with 500 lines of Python.
11 / 2025
When “Optimized” Code Runs Slower
What a terminal renderer taught me about branch prediction, CPU pipelines, and the beauty of being wrong.