Git Worktrees: A Desk per Branch
One working directory per branch means no stashing, no reinstalling and no committing to the wrong branch — and it turns out to be exactly what parallel coding agents need too.
$ cd ./topics/dev-tooling
The environment I build to work fast: dotfiles, provisioning with Ansible, git worktrees, a keyboard-first setup, and tools that let me ramp up anywhere.
13 notes🌱 2 seed🌿 10 growing🌳 1 evergreen
I treat my development environment like a product: versioned, automated and continuously improved. These notes cover dotfiles, provisioning a machine from scratch, the git and terminal workflows I rely on, and the tooling choices that make a new codebase feel familiar on day one.
hover to explore · click to open
One working directory per branch means no stashing, no reinstalling and no committing to the wrong branch — and it turns out to be exactly what parallel coding agents need too.
Between 2020 and 2021 I wrote four posts about ricing Linux: ArcoLinux, Arch, XMonad on an ultrawide, and Eww widgets. The tools changed when I moved to macOS; the habits (tiling, tmux, keyboard-first, config in git) didn't.
My 2019 Hacktoberfest post was enthusiasm in its purest form. What I'd add now: the best contributions are small and close to tools you use, open source works inside companies too, and the hardest part of a community event is keeping it small.
In 2019 I fixed failing tests from a train with Termux. In 2026 the phone doesn't need to do the work at all: SSH home, a small cloud box, or a coding agent running in the cloud, steered from my pocket, with my notes as the trigger.
My 2022 post on deployment hooks argued for building every pull request on real infrastructure, but failing fast. What I'd add: preview environments, a quick PR tier and a thorough merge tier, and releases you can flip back.
A regression with no obvious cause and hundreds of commits to search: git bisect halves the range each step, and with a test script it can find the culprit on its own.
Create React App blocks upgrades and ships heavy bundles. Moving to Vite gives faster builds and real control over chunking, but expect hidden import problems. Swap the build tool first, change the router later.
Four years and 168 commits of dotfiles: GNU Stow mirroring $HOME, a Linux-to-macOS migration, a graveyard of Neovim configs, scripts that encode my workflow, and keyboard firmware as config too.
A proposal: treat developer machines like any other infrastructure, with a shared baseline, personal overlays, versioned roles and a golden path that gets a new starter productive on day one.
An ansible-pull playbook that turns a fresh Ubuntu install into my dev machine: tagged tasks, a per-organisation git identity, pinned versions, a self-healing cron loop, and the idempotency lessons I learnt on the way.
A reactive TypeScript backend where your server functions are the API, so front end and back end stay in sync. A natural fit for building with coding agents.
Scan for leaks, rotate first, rewrite history with regex patterns rather than literal lists, and add a pre-commit scanner so it never happens again.
From 60 wpm hunt-and-peck to 100+ touch typing, a detour through Colemak and back, and the split-keyboard, mouse-free setup I use now.