<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>filipkunc.com</title><description>Notes, projects, and experiments by Filip Kunc.</description><link>https://filipkunc.com</link><item><title>LLM serving observability from scratch</title><link>https://filipkunc.com/posts/llm-serving-observability</link><guid isPermaLink="true">https://filipkunc.com/posts/llm-serving-observability</guid><description>vLLM, Prometheus and Jaeger on one desktop GPU: 32 parallel requests until the KV cache fills, and a tool-calling agent traced to the code it ran.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A tiny OS on KVM, both sides in Rust</title><link>https://filipkunc.com/posts/rust-kvm-os</link><guid isPermaLink="true">https://filipkunc.com/posts/rust-kvm-os</guid><description>Building a minimal hypervisor with kvm-ioctls and a no_std Rust kernel it boots straight into long mode, then giving it a screen, a mouse, a software rasterizer, and enough syscalls to run a real Linux binary.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A shared whiteboard with data-star, and where SSE runs out</title><link>https://filipkunc.com/posts/datastar-shared-board</link><guid isPermaLink="true">https://filipkunc.com/posts/datastar-shared-board</guid><description>Building a live collaborative board with data-star over server-sent events, finding where real-time input hits a wall, and crossing it with the WebSocket prediction and interpolation games have used for years.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Calling Rust from Flutter with flutter_rust_bridge</title><link>https://filipkunc.com/posts/flutter-rust-hn-reader</link><guid isPermaLink="true">https://filipkunc.com/posts/flutter-rust-hn-reader</guid><description>How a Flutter UI and a Rust core talk through flutter_rust_bridge: typed data, sync and async calls, and streams, built into a Hacker News reader.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Testing agents, skills, and MCP</title><link>https://filipkunc.com/posts/testing-agents-skills-mcp</link><guid isPermaLink="true">https://filipkunc.com/posts/testing-agents-skills-mcp</guid><description>Agents need proper context, and MCP and skills provide it. Verifying it actually works is the harder part, tested here with sandboxed Claude Code.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Patching ESM imports with oxc</title><link>https://filipkunc.com/posts/patching-esm</link><guid isPermaLink="true">https://filipkunc.com/posts/patching-esm</guid><description>A live AST explorer that runs the same import-rewriting transform two ways, oxc in Rust and Acorn in JavaScript, including source maps.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>RTS pathfinding: flow fields</title><link>https://filipkunc.com/posts/rts-flow-fields</link><guid isPermaLink="true">https://filipkunc.com/posts/rts-flow-fields</guid><description>Moving thousands of units at once with one shared flow field instead of per-unit paths, simulated live in the browser with Rust and WASM.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Text rendering without glyph bitmaps</title><link>https://filipkunc.com/posts/text-rendering</link><guid isPermaLink="true">https://filipkunc.com/posts/text-rendering</guid><description>A text editor that renders glyph outlines on the GPU with HarfBuzz, benchmarked against canvas 2D and DOM text.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>MeshMaker</title><link>https://filipkunc.com/posts/meshmaker</link><guid isPermaLink="true">https://filipkunc.com/posts/meshmaker</guid><description>My 3D mesh editor, built since 2009 and ported to WebGL2 and WASM by AI.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Native Node.js addons: wrapping native code four ways</title><link>https://filipkunc.com/posts/native-node-addons</link><guid isPermaLink="true">https://filipkunc.com/posts/native-node-addons</guid><description>The same native compressor wrapped for Node four ways, with NaN, Node-API, napi.rs, and WebAssembly.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Fast code search</title><link>https://filipkunc.com/posts/code-search</link><guid isPermaLink="true">https://filipkunc.com/posts/code-search</guid><description>Searching code fast with ripgrep, trigrams, and embeddings, benchmarked on the Node.js source.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Header-only C and C++ libraries</title><link>https://filipkunc.com/posts/header-only-libs</link><guid isPermaLink="true">https://filipkunc.com/posts/header-only-libs</guid><description>My favorite C and C++ header-only libraries.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Making C++ data races show up on purpose</title><link>https://filipkunc.com/posts/cpp-data-races</link><guid isPermaLink="true">https://filipkunc.com/posts/cpp-data-races</guid><description>Forcing C++ data races to show up on purpose, then fixing them with volatile, atomics, and mutexes. Plus a from-scratch allocator benchmark.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Computing mesh normals on the GPU&apos;s other pipeline</title><link>https://filipkunc.com/posts/gpu-normals</link><guid isPermaLink="true">https://filipkunc.com/posts/gpu-normals</guid><description>A WebGPU cloth sim that rebuilds a million mesh normals every frame, with one kernel ported across four GPU languages.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript types as a runtime JSON validator, live in the browser</title><link>https://filipkunc.com/posts/type-json-validator</link><guid isPermaLink="true">https://filipkunc.com/posts/type-json-validator</guid><description>Turn a plain TypeScript type into a live, in-browser JSON validator by walking it with the TypeScript Compiler API.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>Local LLM arena: invert a binary tree</title><link>https://filipkunc.com/posts/local-llm-arena</link><guid isPermaLink="true">https://filipkunc.com/posts/local-llm-arena</guid><description>Comparing small local models on a LeetCode-style task with deterministic unit tests as the judge.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Monkey Patching</title><link>https://filipkunc.com/posts/monkey-patching</link><guid isPermaLink="true">https://filipkunc.com/posts/monkey-patching</guid><description>Tour of techniques for modifying existing code at runtime.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Work life</title><link>https://filipkunc.com/posts/work-life</link><guid isPermaLink="true">https://filipkunc.com/posts/work-life</guid><description>A different way to look at my career than a bullet point CV.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Old Stuff</title><link>https://filipkunc.com/posts/old-stuff</link><guid isPermaLink="true">https://filipkunc.com/posts/old-stuff</guid><description>Reviving my old projects via Claude, WebGL and WASM.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>Using Gemini for game art</title><link>https://filipkunc.com/posts/gemini-game-art</link><guid isPermaLink="true">https://filipkunc.com/posts/gemini-game-art</guid><description>Using Gemini to generate game art assets, and the workflow around it.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item></channel></rss>