“I basically want my whole computing environment to be programmable”: Dev Tool Time with Thorsten Ball
Our very first guest for Dev Tool Time was Thorsten Ball, a software engineer here at Sourcegraph. Thorsten is on the Batch Changes team and works in just two main applications throughout the day: a browser and the terminal, in which he uses tmux as a window manager.
You can watch the recording of this episode at the bottom of this blog post, but first let’s check out Thorsten’s desk:
Hardware setup
“If somebody is thinking about whether they should buy an expensive chair or not, they should. It’s invaluable ... I’m embarrassed to say, but I guess it’s like 12 hours a day [I spend in this chair] and I don’t have any back pain or anything, I’m super comfortable.”
Thorsten’s combo of Steelcase height-adjustable desk and chair keep him comfortable even on long days starting with personal programming, followed by work, and then gaming in the evening. He bought the gaming mouse on a whim and highly recommends it: “It’s amazing how much it changes the feel of how you use a mouse.”
Other hardware:
- MacBook Pro ’16, 2020, 64GB, 16 core
- Desktop computer under desk:
- OS: Dual booting Windows/Linux, mainly used for gaming on Windows
- CPU: AMD Ryzen 7 5800X, 8x 3.8GHz, 32MB L3 Cache
- GPU: NVIDIA GeForce RTX 3070, 8GB
- RAM: 64GB DDR4-3000 CL16, Corsair Vengeance LPX black
- SSD1: 1TB Samsung 970 Evo Plus, M.2 PCIe
- SSD2: 500GB Samsung 970 Evo Plus, M.2 PCIe
- HP Z27 4k monitor
- Shure BETA 87a microphone
- Focusrite Scarlett 2i2 USB audio interface Bose QuietComfort 35 Wireless noise-canceling headphones
- DURGOD TAURUS k320 Mechanical Keyboard (Cherry MX switches) in brown
Google Chrome
“I have three pinned tabs in Chrome: my personal email, my other personal email, and my work email, and the rest of the tabs I close at the end of the day because I’m a good person.”
Kitty
Thorsten’s terminal app of choice for the moment is Kitty, which he sets to non-native full-screen mode. This makes it actually full screen, so you don’t see any other windows or distractions.
tmux
In the terminal everything happens inside tmux. Thorsten has dedicated sessions for different projects. He spawns a lot of windows and panes as he goes, often closing them after running a single command.
He essentially uses tmux as a window manager, since (as mentioned above) Kitty is always in non-native full screen mode, where it covers everything.
Inside tmux Thorsten uses:
- zsh
- neovim (now also switched over to built-in LSP support)
- fzf
- z
- riprep
Vim and Neovim
This is Thorsten’s main editor thanks to our coworker TJ, a Neovim core contributor, who worked on bringing built-in LSP support to Neovim.
“Down here at the bottom there’s a small X and a 1 which means you know there’s one error in the file and you can jump to it from wherever you are in the file... that has been a source of joy in the past two weeks.”
Thorsten’s also a big fan of Vim’s modal editing:
“Once you get used to it and you grok it, then you don’t want to miss it. Editing text becomes fun and enjoyable.”
Alfred
A sort of predecessor to Spotlight, Alfred is a tool Thorsten uses for shortcuts when searching with Sourcegraph and handy helpers.
GitHub
Our workflow at Sourcegraph is based on Git, so Thorsten uses the GitHub CLI to open PRs and view them.
Other tools
These weren’t covered in the episode but are also key parts of Thorsten's stack:
- Todoist as a todo app, on second screen
- Fantastical as a calendar, also second screen
- Sometimes VS Code, if he does TypeScript
- Cleanshot X
- Monodraw
Watch the recording
Check out the recording of the episode below, and be sure to sign up for upcoming events!