Go backend engineer based in Singapore. I build libraries for data access, stream processing, and concurrency control, along with tools for everyday development.
I'm interested in type-safe APIs, explicit concurrency semantics, and small, composable libraries with clear failure behavior.
Core maintainer of go-gorm/gen, GORM's type-safe query and code generation toolkit. My work includes API design, code generation, compatibility fixes, and ongoing maintenance.
I also contribute to the wider GORM ecosystem: gorm · mysql · playground.
- stream — Lazy, type-safe stream processing for Go collections, with functional pipelines, short-circuiting, and native iterator support.
- anylock — Lease locks and fixed-TTL execution gates with pluggable Redis, PostgreSQL, and in-memory backends.
- airlock — Concurrency admission for Go, with tenant-aware scheduling and bounded waiting queues.
- pacelock — Redis-backed rate limiting for LLM APIs, using weighted GCRA to check request and token quotas atomically across multiple dimensions.
I also work on plugin systems and tools for coding workflows:
- cordis-go — A Go plugin framework focused on lifecycle management and reversible effects.
- dsh-ltm — Local-first long-term memory for DeepSeek Harness, with SQLite storage, CJK-aware search, and memory review and deduplication.
- agent-relay — A skill and protocol for handing off tasks between coding agents.
Other projects include ivy, a rule engine for hierarchical content construction, and rcast, a DLNA/UPnP receiver for macOS that plays media through IINA.
I use Neovim, Yazi, and coding agents daily. My Neovim configuration and small workflow tools — dsh-quote-followup, dsh-proxy, and dsh-tui.yazi — are public too.



