The first thing I install on a new system is a window manager because I absolutely cannot function without one. It's muscle memory at this point. I had used XMonad in the past, but I decided to write my own using the Penrose library (it's not as hard as it sounds), mostly because I find Rust easier to understand than Haskell.
I use alacritty as my terminal. I use Firefox as my browser, and I could go on indefinitely about the different tools I use on the web, but I won't.
For writing code I use VS Code. The Remote SSH extension is a must. Then, I'll have language-specific extensions installed and a theme extension.
I'll add that I use Obsidian as my knowledge base.