The Ultimate Work From Home Programming Setup
Published: 2021-01-16 14:59:25

When COVID-19 first broke out, it forced a massive shift in the workplace; the only way to survive as a business was to have employees work from home. And it seems like work from home policies are here to stay, at least in the tech industry. The company I work for only had an “as needed” work from home policy before the pandemic, but now we will have an option to work from home full time, even after the office reopens, an option which I think many will take advantage of.

So, since we’re going to be working from home for the foreseeable future, I decided to upgrade my home office setup. I’ll take you through each piece of hardware, and why I like it for programming.

Monitors
========

Monitors are arguably the most important pieces of hardware in a programmer’s home office. As a software engineer, I usually need to have a lot of applications open at once, so maximizing screen real estate was my main objective when selecting monitors.

My main monitor is a [49" Samsung CHG90 QLED 1080P Curved Super Ultrawide 32:9 Gaming Monitor](https://www.samsung.com/us/computing/monitors/gaming/49--chg90-qled-gaming-monitor-lc49hg90dmnxza/) on it’s stock stand. It might seem excessive, but it’s a truly incredible experience for programming. Typically, I use the right two-thirds of the monitor for my IDE, and I can fit 2–3 open code editors side by side, and the left one-third is for my web browser, running the web app I’m working on. The one caveat is that native window management doesn’t handle this very well, so I use a third-party window management software called [Divvy](https://mizage.com/divvy/), which allows you to use keyboard shortcuts to snap windows to user defined areas of the screen.

My secondary monitor is a [24" ViewSonic 1440P VX2478 series](https://www.viewsonic.com/us/products/shop/monitors/vx2478-smhd.html), mounted vertically (portrait mode) on a [VIVO Single Monitor Desk Mount](https://www.vivo-us.com/collections/monitor-mounts/products/stand-v001). I have this monitor mounted on the left side of my desk, and use it almost exclusively for [Slack](https://slack.com/). It’s great to be able to see a lot of the previous messages in portrait mode, and it keeps slack out of my way on my main monitors.

My final monitor is a [35" Sceptre C355W-3440UN 1440P Curved Ultrawide](https://www.sceptre.com/Monitors/Curve-Monitor/C355W-3440UN-35-Curved-Monitor-product1176category12category80.html) mounted above my main monitor on a [VIVO Single Monitor Extra Tall Desk Mount](https://www.vivo-us.com/collections/monitor-mounts/products/stand-v001t). It’s a great, affordable ultrawide option that competes with much more expensive models from other manufacturers like LG or Dell. I use the left half of this monitor for [ClickUp](https://clickup.com/), the project management and agile board software we use at work, and the right half for [Spotify](https://www.spotify.com/us/\) and any other miscellaneous software I may need to use throughout the course of the day.



![My monitor orientation setup](https://dev-to-uploads.s3.amazonaws.com/i/f30z284awiko6c2zbpmj.png)
<figcaption>My monitor orientation setup.</figcaption>

With curved ultrawide monitors, you typically want to sit farther away from them than a typical flat 16:9 monitor in order to get a wider field of view, so I have all of these monitors sitting on an [IKEA LINNMON / ADILS corner desk](https://www.ikea.com/us/en/p/linnmon-adils-corner-table-black-brown-silver-color-s99932173/), which gives me a lot of depth space to push the monitors back into the corner.

Peripherals
===========

Let’s start with the obvious; a great mechanical keyboard is a necessity for a programmer. Right now, I’m using a [DURGOD Taurus K320 Mechanical Keyboard](https://www.durgod.com/page9?_l=en&product_id=47) with Cherry MX Clear switches, and so far it’s the best, most satisfying mechanical keyboard I’ve ever used. Don’t be turned off by the [relatively low price point](https://www.amazon.com/DURGOD-Mechanical-Keyboard-Interface-Anti-Ghosting/dp/B078HFTTYK); it has an **excellent** build quality, with virtually no key wobble, stabilizers for the long keys (enter, shift, backspace, etc.), a super solid frame with zero flex, and extremely high quality plastics for all the parts. I really like Cherry MX Clear switches with it, because it provides an extremely stiff keypress (though this is just based on preference) while still not being obnoxiously loud, like Cherry MX Blues.

For my mouse, I use a [Logitech G502](https://www.cherrymx.de/en/mx-original/mx-clear.html). It has removable weights so you can configure it to your preferred weight (I prefer a heavier mouse), but the main attraction here is really the scroll wheel. The G502 has a button that can toggle the heavy, weighted scroll wheel between behaving like any other scroll wheel and being completely free spinning (check out the video below to see what I mean). It’s amazing for scrolling through huge code files that are hundreds of lines long. I’ve also considered picking up a [Logitech MX Master 3](https://www.logitech.com/en-us/products/mice/mx-master-3.910-005620.html), which has the same scroll wheel feature, but also has a thumb wheel for horizontal scrolling, which seems interesting.

{% youtube DljQV3pE1lc %}

I also recommend getting an oversized mouse+keyboard mat, like the [Logitech G840 XL](https://www.logitechg.com/en-us/products/gaming-mice/g502-hero-gaming-mouse.910-005469.html). It may seem excessive, but it’s really nice to have a soft surface to put both your mouse and keyboard on, especially since it helps to prevent your keyboard from sliding like it might on a harder surface.

If you’re a programmer, software engineer, or tech industry professional of any kind, chances are you might be working from home for a long time, or indefinitely. If that’s the case, it might be time to upgrade your home office.