Chris Wellons
Software engineer
Who are you, and what do you do?
My name is Chris Wellons and I'm a software engineer with around 24 years of programming experience. In addition to my professional software work, I've written, collaborated on, and maintain a number of open source software projects such as Elfeed (an RSS and Atom feed reader), Endlessh (an SSH tarpit), and Enchive (a cryptographic backup tool). I also mentor high school and college students in software development.
For the past 12 years I've also regularly published a wide variety of programming articles on my blog, mostly related to open source software development.
What hardware do you use?
I use various Dell computers, including right now as I currently type this on a Latitude 7490. However, this situation isn't so much a deliberate choice as it is going with the flow and sticking to the simplest, least (personally) costly options. I really don't care too much about hardware so long as it has enough memory and it's compatible with my preferred software configuration.
I tend to use machines for a long time, far beyond their warranty and until they're no longer worth upgrading or repairing. Less than a year ago I was still using a Latitude E6410 from 2010 as my daily driver. The primary reason I replaced it was that modern web browsers had simply outgrown it.
I also rely significantly on a home server built from an ODROID-C2. In the past this role had been filled by older Raspberry Pi models, but the ODROID is well-suited as a server. Since I don't need to run a web browser on these devices, my demands from them are much smaller.
And what software?
I'm a Linux guy through and through and have been for the past 15 years. I strongly prefer Debian, but Ubuntu is also acceptable. In either case I prefer stable Linux distributions where the software doesn't change for years at a time, where I get to decide exactly when the eventual upgrade happens. I'm a creature of habit, and I don't like my days interrupted by big, breaking updates.
I use NeoMutt as my email client. It lets me comfortably compose all my mail in my favorite text editor, Vim. I'm using both right now. With one exception, I use Vim for all my software development, and I dislike integrated development environments (IDEs). The one exception is Emacs, my second favorite text editor, though these days I only use Emacs for extending Emacs.
Why I like these editors so much is that I spend a significant amount of my time working inside of a terminal emulator connected via SSH to a remote machine. To manage this setup, I'm nearly always using tmux, a terminal multiplexer. I'm also using tmux this very moment as I type this on a remote system. For the terminal emulator itself I usually use xterm because it's so configurable and featureful.
Firefox is my favorite web browser. This is in large part due to Tridactyl, an add-on that makes the interface Vim-like, which makes the interface far more capable. I also use uBlock Origin and uMatrix for privacy, security, and efficiency.
I dislike big desktop environments, so instead I use OpenBox - bare-bones, without any task bar, start menu, etc. It's heavily customized and configured especially for keyboard use. With it I can go for long periods without needing to touch the mouse.
Configuration is so important to me that I carefully track it all in source control with Git on GitHub. That's why it doesn't matter what machine I'm working on. I carry my entire software configuration wherever I need it, so any machine will feel like home inside of a few minutes. In a pinch, the machine doesn't even need to have Linux installed since I can boot directly into my own Debian-based live image with my personal configuration already baked in.
I use mpv for most media consumption. Its minimalistic keyboard interface is perfectly suited for my needs. I nearly always use mpv for YouTube, too, watching videos downloaded with youtube-dl. For instance, I'm "subscribed" to many different YouTube channels via their Atom feeds using my web feed reader, Elfeed. When one of these channels publishes a new video, Elfeed hands the new video URL directly to youtube-dl for downloading, and I watch it later with mpv. My procrastination is highly optimized.
What would be your dream setup?
I've invested a lot of time getting everything just the way I like it, so my dream setup isn't much different from what I already use! It would be what I have now, minus the bugs.
Honestly, my dream setup is less about me and more about the people around me. The biggest issues with my existing setup involve working around other people's setups, particularly when they're using subpar software and they don't even realize it. Other people's limitations can limit me when I need to be compatible. Passive "choices" can negatively influence the future direction of technology, particularly when dark patterns are involved.
And my role as an open source enthusiast, developer, and writer is to improve this situation, either through education or simply creating better tools!