Edited on: 3 July 2023

I remember reading this HN post “Software I’m thankful for (2021) (crawshaw.io)” and wondered what would be my version of it.

Here’s my list:

Vim

It has accompanied me since 2013 when I was an undergrad. It just works and never breaks my workflow! Since version 8 when Packages is introduced to manage plugins natively, I love it even more!

VSCode

I usually code with VSCode. It makes my development experience better when switching between multiple languages. It auto lints when I save, I have my debug console, terminal, GitLens all in one window. I can also use Github co-pilot extension for their code suggestions too.

I’m sure you can have a similar setup using tmux and vim, but it does take a while to setup. VSCode is pretty much click install extension and start coding.

I used VSCode LiveShare once and it is great for remote pair programming. Sadly there’re privacy issues when using it in a company.

Rectangle App

I was searching for a tool that helps resize my windows automatically with hotkeys, and this app accomplishes that flawlessly! It allows me to maximize my window space across various applications. For instance, I can have my browser window on the left and my code editor on the right. Furthermore, if I have an extended display, I can conveniently use shortcuts to move a window to the second display.

Homebrew

Do I need further explanation for this? This has helped managed so many packages that I use personally and at work.

Most of Go toolings (go mod, go-delve, gofmt)

In earlier versions of Go, we had to manually store Go repositories in GOPATH. With go mod it’s so much easier and you don’t need to store your git repo in a specific location. The dependency management just works.

If you’re interested in the history of Go dependencies, see “The History of Go Packaging (marstr.dev)”

Web search engines and chatGPT

Mostly how you can search an error message to see if anyone else encountered the same and find possible solutions from there.

ChatGPT to explain what code does and help generate the first iteration of code :grimacing: