Uses This

A collection of nerdy interviews asking people from all walks of life what they use to get the job done.

A picture of Drew DeVault
Image by Ken Samanote.

Drew DeVault

Software developer

Who are you, and what do you do?

I'm Drew DeVault. I maintain lots of free and open source software, including projects like sway, wlroots, sr.ht, scdoc, aerc, chopsui, TrueCraft, KnightOS.. and more. I also contribute to many projects, including mrsh, Alpine Linux, git.. and more.

I also blog pretty often at drewdevault.com on topics like free software, privacy, and the social effects of technology.

Outside of software I like astronomy and linguistics.

What hardware do you use?

A wide variety of hardware. The computer I'm typing this into is an 8 core i7-3770K @ 3.5GHz, with 16G of RAM and 4 TB of storage. It has four displays connected, including one 4K and one vertical display. It's a bit excessive - I usually only have 2 or 3, but for testing sway I make sure that I have a wider variety of output configurations. I also often have a DEC VT220 terminal plugged into this, but at the moment it's offline.

That's my main workstation. I also travel with one of two ThinkPad X200's, which is my favorite laptop model - it still holds up after over 10 years. One of those laptops sometimes lives on my desk, and I SSH into it from my workstation fairly often. I also have a couple of Raspberry Pis around the house, the most important one is an on-site DNS and off-site filedrop/jump box.

sr.ht runs on more exciting hardware. I own 6 dedicated servers, 5 colocated a mile away here in Philadelphia and 1 colocated in San Francisco. In total there's something like 96 cores, half a terabyte of RAM, and upwards of 60T of storage. The hardware was expensive upfront but will scale very well and allows me to onboard big projects on day one. I also have some experimental RISC-V hardware on the way, which I intend to make available to users for running builds on.

And what software?

My workstation runs Arch Linux, but don't take that as an endorsement. My laptops generally run Alpine Linux or 9front (you can take that as an endorsement), or MINIX or OpenBSD. My desktop environment, naturally, is sway, built fresh from the master branch daily. Often I'm running sway with some weird patch to test things, then forget I'm doing so until my session segfaults. My text editor is vim. My IRC client is WeeChat and my email client is mutt. My shell is fish, but I'm only using that until mrsh is ready. My web browser is qutebrowser.

I write code in C, Go, Python 3, and POSIX shell scripts primarily, but I also often use Java, Scala, JavaScript, C++, C#, Rust, Ruby, and more; more often than I would like to.

What would be your dream setup?

I'm using it.