Siddhant Goel

Software Engineer, Open-source Maintainer, Author

#homebrew #kitty #macos #neovim

Who are you and what do you do?

I'm a Software Engineer working mainly on developing backend and infrastructure systems. I also maintain a few open-source packages (mainly Python libraries) and love to build side-projects. The active ones include Tracking Personal Finances using Python, GeniePy, and devstacks.

What operating system do you use?

macOS

What programming languages do you normally work with?

I love writing Python code. I've been using Python for more than a decade and use it in my day job, side-projects, as well as open-source work.

What does your development environment look like?

I always have two windows open, a terminal (Kitty) and a text editor (Neovim).

Kitty is a terminal emulator I really like to use. I've used iTerm2 and Alacritty in the past but keep coming back to Kitty, mostly because of how easy and readable its configuration syntax is. And I love that I can check all that configuration into source control.

In terms of the text editor, I've been using Vim for more than 15 years and at this point, have way too much muscle memory to switch to anything else. I switched to Neovim a few months after it came out. I generally like using macOS native apps, so I use Neovide which is a frontend to Neovim written in Rust and packaged as a macOS native app.

I use Telescope quite heavily. I have a few shortcuts configured that let my fuzzy-find files and live-grep through the code in the current project.

I usually have multiple projects open in a single Neovide window, for which I use the workspaces.nvim plugin. I have it hooked up to another Telescope shortcut, so when I press Ctrl-k, I can choose between a list of projects to switch to.

The state of each individual project (open buffers, etc.) is saved using sessions.nvim, incidentally written by the same person who wrote workspaces.nvim. I wrote more about my Neovim setup on my blog.

Other than that, I use Homebrew to install software, including command line utilities and GUI applications (called "casks" by Homebrew).

I use the zsh shell. I started out with bash (probably like almost everyone else) and tried using fish for some time. I keep coming back to zsh because I didn't like that fish was doing too much for me, and I like the trade-offs that zsh makes (POSIX compatibilty, plugin ecosystem, etc.).

How do you work with source control?

I use git for all my projects.

I've tried using Git GUIs but somehow they don't click in my brain. So I use the git command line. The UX can definitely be slightly confusing, but at this point I'm too used to its flow and quirks to use anything else.

Are your dotfiles public?

Yes! You can find them at https://github.com/siddhantgoel/dotfiles.

Are you missing anything in your current setup?

I miss having a good macOS GUI for Neovim. I used to use Vimr but as of today it looks unmaintained. Neovide is the only other alternative I've found that works to my liking, even though it doesn't feel macOS-native.

Thank you! Where can we learn more about you?

My personal website is at https://sgoel.dev and I'm sort of active on Mastodon.