“I basically want my whole computing environment to be programmable”: Dev Tool Time with Thorsten Ball

Rebecca Dodd

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:

Thorsten’s hardware setup

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:

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.

Neovim LSP

“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:

Watch the recording

Check out the recording of the episode below, and be sure to sign up for upcoming events!

Get Cody, the AI code assistant

Cody writes code and answers questions using your own code graph as context—even in complex codebases with multiple code hosts.