Writing
Notes from the workbench
Tutorials born from real problems, and the occasional essay on why tools are the way they are. Writing is how I check whether I actually understood something.
The 15-minute terminal and git primer
Oct 24, 2026
Just enough terminal and git to follow the vibe coding series without being lost: the prompt, ls and cd, and the four git verbs that act as your undo button.
terminal · git · beginners · guide
Your first agent run with OpenCode
Oct 24, 2026
The finale of the vibe coding series, where the Mac and Windows tracks rejoin: connect OpenCode to its free model catalog, clone a starter site, and watch the agent change a real file on your screen — for $0.
OpenCode · guide
Set up your Mac or Windows machine for vibe coding
Oct 24, 2026
A verified series for non-developers: from a clean Mac or Windows machine to watching an AI coding agent change a real file on your screen. OpenCode and its free models — nothing else to install.
vibe coding · OpenCode · OpenRouter · guide
Vibe coding setup for macOS
Oct 24, 2026
The Mac track of the vibe coding series: Homebrew, a zsh setup worth staring at, git with SSH keys stored in Keychain, and VS Code — every step cited to its official source and stamped with a clean-machine verification date.
macOS · Homebrew · zsh · guide
Vibe coding setup for Windows (WSL + Ubuntu)
Oct 24, 2026
The Windows track of the vibe coding series: WSL2 gives you a real Linux terminal inside Windows, then the same shell, git, SSH keys, and editor as the Mac track — every step cited to its official source.
Windows · WSL2 · Ubuntu · guide
TypeScript: A Philosophy Built on Imperfection
May 1, 2025
TypeScript is less about syntax and more about writing software with intent - while inheriting every quirk of JavaScript.
Philosophy · TypeScript · Development · JavaScript
Introduction to IntersectionObserver
Apr 23, 2025
Trigger animations exactly when elements enter the viewport, instead of burning cycles on scroll listeners.
JavaScript · IntersectionObserver · Tailwind CSS · Tailwind CSS Animated · Vento
Creating a Simple Resume Website Using Lume
Apr 19, 2025
A beginner-friendly walkthrough of building and shipping a resume site with Lume, Vento, Tailwind, and GitHub Pages.
Lume · Lume CMS · Tailwind CSS · GitHub Pages · Vento · ChatGPT
iTerm2 key bindings
Jan 22, 2024
Mac-standard cursor movement in iTerm2, plus the ASCII control characters and ANSI escape sequences underneath it.
iTerm2 · OSX · ASCII · ANSI
0xffffffffffffffffn: uint64 hack to decrement by one using addition
Oct 12, 2023
How to subtract one from a Deno KV counter using only addition, and the two's-complement arithmetic that makes it work.
Deno · Deno KV · TypeScript · JavaScript · Binary Arithmetic
Manually Create Coverage Badges Using GitHub Actions
Apr 9, 2023
Generate shields.io coverage badges from a c8 HTML report in CI and publish them to a branch you control.
GitHub · GitHub Actions · Coverage
Create a 3D Contribution Chart Using React Three Fiber
Apr 2, 2023
A six-step tutorial building GitHub-Skyline-style 3D bar charts from time-series data, ISO 8601 week math included.
3D · Data Visualization · React Three Fiber · React · The Wandering Inn · Three.js · TypeScript
Copy Issue Labels From Another GitHub Repository
Mar 29, 2023
One gh CLI command copies every issue label between repositories - plus how to set org-wide defaults.
GitHub
Deploying a Repository Inside a GitHub Organization to Vercel Using GitHub Actions
Mar 28, 2023
Mirror an org repository into your personal account from CI so Vercel's free tier can deploy it.
GitHub · GitHub Actions · Vercel
Create a Remote Web Development Environment Using Linode
Apr 9, 2021
Provision a fully-loaded remote dev box on Linode with a StackScript: zsh, Keybase, Go, Docker, and more.
Linode · Keybase