Backend engineer. I write about distributed systems, databases, and whatever side project I happen to be hacking on. Occasionally life notes too.
Top-K Dynamic Pruning in Full-Text Search
Inverted index → BM25 → threshold θ → WAND / Block-Max WAND / MaxScore / BMM. A from-scratch study note on why you don’t have to score every document.
Milvus 2.6 CDC — Technical Q&A
Technical Q&A on Milvus 2.6 CDC: architecture, replicate config, channel semantics, failover modes, observability, and the 2.5→2.6 comparison.
Pinning Claude Code usage to the GNOME top bar — without freezing the desktop
When the top-bar widget itself becomes the perf incident. Fixed it with a systemd timer + tmpfs cache instead of trying to make ccusage faster.
Pulsar backlog quota → producer 重连:pulsar-client-go v0.17.0 vs v0.19.0 复刻对比实验
PDF 描述的 producer 永久卡死问题已在 v0.19.0 修复 —— 复刻 + 扩展实验
Hello, world
Why I’m starting another blog in 2026.
Setting up this blog: Hugo + Vultr + Cloudflare
$70 a year, one weekend, fully owned.