The tools changed because the job changed
From optimizing keystrokes to optimizing decisions.
By the end of 2022, I had one clear goal: be faster. I had lots of ideas but struggled to quickly prototype them; my code editor was a big part of the problem, tediously slow and eating all my RAM. Neovim was the answer, typing as fast as thinking. Plus, my laptop was flying, just one terminal tab, a handful of TUIs, nothing else.
I spent the next years writing Lua scripts to shape my workflow. It was fun, and I valued customization more than the maintenance cost. It worked, until the job outgrew it. Growing in my career meant more code reviews, more discussions, more jumping between branches. git stash falls short when you are juggling three features and a hotfix, it introduces the same kind of barrier as leaving the terminal. No amount of keymaps can fix a workflow problem.
Git worktrees solved it. One worktree per branch, each pinned to a tmux session. Switching context became switching panes. The friction dropped and I could finally collaborate at the pace the role demanded.
Somewhere along the way AI went from an assistant to the thing that writes most of the code. That changed the job more than any tool swap ever did. I spend less time in my editor and more time in the planning phase, whiteboarding, sketching interfaces, writing specs before touching a file. Reviewing other people’s work still takes the same effort, maybe more, because AI-generated code is fluent but not always thoughtful. The bottleneck moved upstream, and I think that is true for everyone, not just me. The kind of thinking that used to be reserved for staff engineers, system design, trade-off analysis, deciding what not to build, is quietly becoming the baseline expectation at every level.
So I adjusted my tooling. Zed won me over with its first-class vim motions, and it stuck. It is the fastest editor experience I have found outside a TUI. Their ACP simplifies working across multiple worktrees. My workflow now looks like this: manage sessions in tmux, open Zed and inside it launch the agent chat and the integrated terminal. Once I am done with a branch, I close the tab. Multiple project tabs in one window means no switching between editor instances.
I also mapped every app I use daily to a hotkey in Raycast, all following the same pattern: <leader> + one letter. Zed: <leader>;. Helium: <leader>h. Terminal: <leader>/. Slack: <leader>s. No transition animations, just jump where I need to. Raycast’s clipboard manager is a delightful tool, I save entries as snippets and rely on them constantly.
Cannot deny I feel nostalgia when I open my dotfiles, I still use Neovim to edit them. But that trade-off no longer holds. I do not need to fine-tune keymaps, chase LSP edge cases, configure Treesitter grammars, or wire up DAP. The tools I care about now are the ones that let me think, not the ones that let me type.
Looking back, the pattern is simple. First I optimized for typing speed, then for context-switching speed, now for decision-making speed. Each time, the tools changed because the work changed first. AI did not make the coding part disappear, it just made the engineering part around it much bigger. The tools followed, as they always do.