Yong Sung John Lee
Vancouver · Software Engineer @ Monstercat
"Software engineer who turns 'that'll take months' into 'it's already in prod.'"
Day job is systems work in Go, PostgreSQL, and TypeScript. The rest of my time goes into a homelab that started small, kept compounding, and now hosts a quiet little corner of services for friends, family, and future-me.
Most of my open-source work orbits Neovim and the workflow of operating that homelab from inside it. The plugins below are mine — the through-line is "live in the terminal where keystrokes are cheap, orchestrating multiple agents across repository worktrees like a conductor."
How I got here
My passion for computing ignited at age nine, when I first encountered a BASIC animation of a stick figure pushing a box. I memorized the entire script on the spot, despite barely knowing any English. That spark led me to enroll in a computer cram school in Korea, where I dove into BASIC and started crafting my own simple games. By grade six, I'd earned a spot on the honor roll of the National Personal Computer Competition in Korea — competing among adults with Turbo C 2.0, dBase III, and Lotus 1-2-3.
Facing the 64-tile limit of animation on an IBM 286 AT pushed me to teach myself C and C++. When my family moved to Canada, I tested directly into Computer Science 12 as a grade-nine student. The next year (June 1996), I earned another honor-roll nod in the Canadian Computing Competition, writing algorithms in Borland C++ 3.11 as one of the youngest in the province.
Life steered me into other ventures through my 20s and 30s. The passion never faded, but the keyboard time did. At 40, I came back to it full force — working days, pursuing my Computer Science degree by night. Today I'm a full-time software engineer doing what I'd been chasing since the BASIC stick figure: building software and solving problems through code.
"If the terminal is home, this config is the furniture."
Opinionated Neovim distribution built on LazyVim, optimized for AI-assisted development in Go and TypeScript. Single-command installer, OS-detected branches.
Multi-agent panel for Claude / Codex / Gemini / Copilot
Run AI agents side-by-side as named slots inside Neovim. Each has its own knowledge-base scope, status reporting, and per-agent model. F5 cycles among them; you treat them like terminals because that's what they are.
Comprehensive worktree manager for multi-repo projects
Switch between worktrees, add new ones, remove what you've shipped — without leaving the editor. Built because `git worktree add` plus a sticky note wasn't a workflow.
Multi-repo + worktree git graph
Three-pane floating panel: repo picker, IntelliJ-style graph, live commit preview. Pull, fetch, destroy worktrees from the picker. Built because gitgraph.nvim is great but shows one repo at a time, and I live in five.
Six markdown previews, pinned to single-letter slots
q / w / e / a / s / d — each pins one preview, with persistent cursor state across slot switches. For runbooks, ADRs, blog drafts, KB pages. Six slots is enough; ten is too many.
Local-first, git-backed rsync for remote-host configs
Edit your homelab's configuration on your laptop, ship it to the VPS without ever SSHing for editing. Each directory has a `.autovim-remote.json` with target + excludes + named commands (build, deploy, reload nginx, etc.). This site is deployed via it.
If you've read this far, you've probably noticed the through-line: I want to operate infrastructure and develop solutions inside Neovim — solving real-life problems while handling multiple repositories and worktrees gracefully, without my workflow ever leaving the keyboard. The plugins are how I got there. The blog posts are how I remember what I learned along the way.
If you're working on similar problems — multi-agent orchestration, remote-first development, Go + Postgres at scale, the boring-but-essential plumbing of self-hosting — I'm always interested in trading notes. The contact page has the channels.
Prefer reading-mode typography? Same content, calmer page →