Matt's remote workspace in 2020

With a lot of folks working remotely in recent days, I posted a tweet about how I decided to tidy up my desk, and I received a lot of questions and comments about my remote workspace setup! I’ve been working from home for about 6 years now and have accumulated a fair amount of gear over time. This post will detail the equipment I use as part of my workspace, and describe some of my experiences working with this equipment on a daily basis.

If you’re only interested in a particular section, feel free to skip ahead. Enjoy!

Matt's remote workspace in 2020 Matt’s remote workspace in 2020

The Diagram

After answering a few questions on Twitter (and for my own reference), I decided to create a diagram of how each component in my setup is connected. The result is more complex than I had expected, but here’s a legend of cable types mapped to Graphviz arrow shapes:

Graphviz arrows legend https://www.graphviz.org/doc/info/arrows.html

Some devices are connected via more than one cable, such as USB and DisplayPort for my monitors. In addition, some devices have bidirectional connectivity to indicate the flow of data in both directions. Behold, The Diagram (and source code)!

Workspace setup diagram

Now that we’ve seen an overview of how everything fits together, let’s break it down and discuss the advantages and disadvantages of some of my choices.

To be clear, a lot of this equipment is not at all necessary for a typical remote work setup. A lot of folks can get by just fine with a laptop and maybe an external display, mouse, or keyboard. But I’m a desktop PC person and “overkill” is more the way I roll, so let’s dive in!

Computer

The heart of my workspace is my Linux desktop PC. I typically build a new PC every 4-5 years and this machine was assembled in August 2019.

I decided early-on to go all-in on AMD thanks to their recent return to competitive status and the success of the Zen and Zen 2 families of CPUs. On top of that, they’re Linux-friendly and actively contribute support for their CPUs and GPUs to the kernel.

All in all, the machine cost about $2300, which seems reasonable for a machine that will last 4-5 years. I think I struck a decent balance between price/performance without going all-out on enthusiast gear like Threadripper CPUs, RAID SSDs, 128+GiB RAM, etc.

Completed PC build Completed PC build with plenty of space for activities

As for software, I’m currently running a mostly-stock Ubuntu 19.10. I typically only run LTS releases, but wanted to play with better display scaling options in newer GNOME. I ended up being able to make things work for me by using a 1.5x font scaling option in gnome-tweaks. I’ve had some weird GNOME instability though and am looking forward to being back on LTS with 20.04.

Because I’m running an AMD CPU and GPU, I’m able to get a decent amount of hardware sensor information within Linux. I am temporarily using the zenpower kernel module rather than the upstream k10temp because it provides much more granular information for AMD Zen CPUs, although I understand improvements are coming in Linux 5.6 which will allow me to switch back. As for my motherboard, I can see more sensor data in the UEFI, but the hardware sensors don’t seem to work in Linux at this time.

$ sensors
asus-isa-0000
Adapter: ISA adapter
cpu_fan:        0 RPM

amdgpu-pci-0900
Adapter: PCI adapter
vddgfx:       +0.90 V
fan1:        1225 RPM  (min =    0 RPM, max = 5500 RPM)
edge:         +79.0°C  (crit = +99.0°C, hyst = -273.1°C)
power1:       31.16 W  (cap =  47.00 W)

zenpower-pci-00c3
Adapter: PCI adapter
SVI2_Core:    +0.96 V
SVI2_SoC:     +1.08 V
Tdie:         +52.6°C  (high = +95.0°C)
Tctl:         +52.6°C
Tccd1:        +40.2°C
Tccd2:        +40.5°C
SVI2_P_Core:   4.41 W
SVI2_P_SoC:   15.28 W
SVI2_C_Core:  +4.61 A
SVI2_C_SoC:  +14.13 A

screenfetch output Output from the screenfetch utility

Peripherals

Now that we’ve discussed the PC itself, let’s talk about some of the devices I have attached to it! I previously discussed some of my ergonomic setup in my blog, A programmer’s journey with RSI.

Overall, I’m extremely happy with the peripherals I’ve assembled. Things work pretty seamlessly and I’m able to work comfortably in both sitting and standing positions, thanks to the Uplift desk and its spacious desk surface. I have considered buying VESA monitor arms a few times, but it’s not strictly necessary since the desk surface is large enough as-is.

If you work in technology and have never tried a vertical monitor, I highly recommend giving it a try! I used to use it almost exclusively for programming in vim before I switched to VSCode a few years ago.

Aside from my desk, my most vital peripheral is definitely the Kinesis Advantage 2 keyboard. It takes commitment to get used to it, but after about 2.5 years with it, I can’t imagine myself using any other keyboard as my daily driver.

Kinesis Advantage 2 QD The Kinesis Advantage 2 QD. Maybe I’ll try out Dvorak one of these days.

Audio

Finally, let’s talk audio! I started my audiophile journey and have been accumulating audio gear for the past 9 years or so. It started with a USB DAC and a set of headphones and snowballed from there. My most recent additions are a nice microphone and audio interface in March 2020.

Let’s start with audio input:

To be clear, this kind of setup is not necessary for your average video call. I decided to make the investment because I work remotely full-time anyway and I wanted the additional audio input flexibility. I play bass guitar from time to time, and I’m also very interested in doing some live-coding streams on Twitch. More to come on that soon hopefully!

Sennheiser HD650 headphones, Audio-Technica AT2035 mic, Onkyo TX-8255 receiver Left to right: Sennheiser HD650 headphones, Audio-Technica AT2035 mic, Onkyo TX-8255 receiver. Bonus cameo by Gopher Bobby and some cmatrix fun.

Next, on to audio output:

For video calls (or if I’m hacking on something later in the evening) I turn on the Vali 2 and use my Sennheiser HD650s along with the new microphone rig. Otherwise, I generally use my speaker setup since I’m home alone for the majority of the day.

Focusrite Scarlett 2i2 (3rd gen) interface, Schiit Modi 2 Uber DAC, Schiit Vali 2 headphone amp Top to bottom: Focusrite Scarlett 2i2 (3rd gen) interface, Schiit Modi 2 Uber DAC, Schiit Vali 2 headphone amp. Gopher figurines courtesy of GopherCon.

Polk Audio Monitor 40 Series II speaker and Polk Audio PSW505 subwoofer Polk Audio Monitor 40 Series II speaker and Polk Audio PSW505 subwoofer. An old laptop box is used as a stand because I haven’t found anything better. Suggestions welcome!

Compare and contrast

I have been working from home for almost 6 years now and have put a lot of time and thought into fine-tuning my setup. I’ve talked to quite a few people about their remote work setups and I’m often surprised by just how different our preferences are.

For example, check out my friend Fatih Arslan’s beautiful, minimal desk setup:

Fatih's minimal desk setup Fatih’s minimal desk setup

Fatih uses a MacBook Pro with an LG 4K monitor and an Apple keyboard and trackpad. This setup is objectively beautiful and free of unnecessary clutter and distractions. It works extremely well for Fatih and his preferred style of remote work. For me, I think I’d really miss my speakers and two extra displays!

Next, we have my friend Andrew Herrington’s six(!) monitor workstation:

Andrew's six monitor workstation Andrew’s six monitor workstation

Andrew uses two computers: a MacBook Pro with an external GPU to drive four displays, and a custom PC to drive the other two, with all of the monitors mounted on a single arm. He has a Blue Yeti microphone and a couple of nice keyboards: the Ergodox and Unicomp 103. Andrew makes use of all that screen real estate with full-screen browsers, videos, source code, and video call windows. I can’t even imagine finding a use for twice as many monitors as I have now, but this is Andrew’s ideal remote work setup!

Conclusion

Ultimately, it is up to you to decide what kind of setup works best for you. Some folks even travel the world and work nomadically from various coffee shops and cafes every day! I hope my friends and I have been able to give you some inspiration for making your remote workspace truly your own.

For me, my optimal work environment is my home office with a Linux desktop PC, three monitors, and as many high-quality audio/video peripherals as I can use!

If you have any questions, feel free to contact me! I’m mdlayher on Gophers Slack, GitHub and Twitter.

Special thanks to Fatih Arslan (@fatih) and Andrew Herrington (@andrewthetechie) for allowing me to share their setups with you, and to Mary Francois (@MaryFrancois) for proofreading.