Stack

As a software engineer, the tools I use define how I work and I find it inspiring to see which tools other people use.
Last updated:

This page focusses on Software. For Hardware, check /setup.


My software stack is pretty old-school. I prefer CLI applications for almost everything. The only GUI programs I usually run are browsers, image manipulators and LogSeq.

OS: Fedora Linux

It all started with Real Red Linux 2000, a special millenium version of RedHat Linux. I don't know for sure, but I think it was based on RedHat 6.1 or 6.2.

Over the years, I first used different RPM based distributions, then switched to Gentoo for a while, before getting annoyed by the compiling frenzy and discovering Arch. When Arch made the switch to systemd, I found Void Linux and stayed with it for years. At some point, not many years ago, I went with Fedora and it struck a nice middle ground between customizability and "it just works". Thanks to Fedora Spins, it is now easy to have a more standard system on my work laptop and a rather customized one on my private laptop, without too many differences in the foundation. I use official the Sway Spin on my private laptop.

DE: GNOME vs Sway

Over the years I got used to tiling window managers. Honestly, I tried almost all of them and went from hyper-configurable to super minimalist. I ended up - as usual - somewhere in the middle, with i3 and Sway.

My work laptop has a GNOME desktop with some extensions, that make it work well for me. My typical work flow involves full screen applications and many desktops. I rarely have more than one window on one screen. That is why I didn't have too much of a hard time to switch from dwm and similar tiling window managers to GNOME, because it uses MacOS-like gestures to work with desktops. Extensions like Maximize Lonely Window help as well. There used to be another extension, Maximize To Empty Workspace, which was even closer to my usual way of working. But it is not supported in newer GNOME versions.

Editor: Helix

Most of my life, I used ViM. It made me more productive and helped me to focus on the things that matter most for my productivity. One day, I found Kakoune, which blew me away by being so similar and yet different to ViM, in a (in my opinion) good way. What Kakoune does is to to switch around the command order. While ViM's command language is VERB-MODIFIER-OBJECT. For example: d2w means delete two words. Kakoune switches that to MODIFIER-VERB-OBJECT and introduces selecting and non-selecting movement, which allows you to see your selection before applying an action. d2w changes to 2Wd, which translates to select next two words, then delete them. I finally settled with Helix, an editor that uses Kakounes command language, but implements many useful things by default, while still being very configurable.

Terminal: foot + zellij + zsh

Almost all of my day-to-day applications are in the terminal. I am so used to it, that I started trusting GUI applications less. This is obviously my issue, but luckily I'm not alone, so many great CLI applications exist.

I use foot as terminal emulator. It is lightweight, supports 24bit colours and works with Wayland.

Inside foot runs zellij, which is a terminal multiplexer similar to screen and tmux. It allows me to run multiple applications in one terminal, keeps sessions alive after closing the terminal emulator and so on. I actually configured zellij to feel a lot more like tmux, because I'm so used to the latter and honestly I might just switch back to tmux, who knows.

My shell of choice is zsh with oh-my-zsh. It is by far the most versatile shell and the only one (to my knowledge) that supports RPROMPT, a prompts at the end of the line.

Browser: Firefox

My browser of choice is Firefox, because I want an open and diverse internet. Firefox is a great choice and offers lots of features, like direct PDF support, privacy features out of the box and great synchronisation. Chrome and Chromium-based browsers are great as well, but if everyone uses the same browser, we'll end up with whatever the company behind this browser wants the internet to be.

Other Tools: LogSeq, Poe, Bitwarden, Git...

Of course, I use a lot more tools in my day-to-day work.

I use LogSeq for knowledge management. It is similar to Evernote, Obsidian or Notion. For me it hits the mark between flexibility and structure. I use it for everthing from todo lists to planning long D&D campaigns.

Poe allows access to all kinds of generative intelligence tools, like LLMs ("ChatGPT") and image generators. I mostly use Mistral, but also switch between models from time to time. They help me with brainstorming and sometimes I misuse them to write JSDoc comments for me.

Bitwarden is a fantastic password manager with lots of utilities. It works so that you don't need to trust the server provider, because everything runs on the client (for example in a browser plugin) and is encrypted locally before being sent to the server. The best thing is, that I can host a bitwarden server myself, using Vaultwarden.

GIT is the most widely used source code management as of today. Although I see some strengths in other systems, Git is by far good enough for all my needs. I host my own Forgejo git server at git.k0r.in.

There is a lot more and I might extend this list from time to time.