The Ultimate Linux Developer Desktop 2020
Excuse the hyperbolic title. That’s what I googled when doing my research. My goal: build a blazing machine for developing software using:
- JavaScript / Node
- Go
- Rust
- Python
- AWS
My late-2013 MacBook Pro is still serviceable, so I didn’t need portability. I’m seeking:
- More speed
- More space
I briefly considered building a Hackintosh, but didn’t want to get stuck not being able to upgrade or boot. I know Microsoft has been doing some great things with terminals and shells and Linux subsystems, but I wanted to stay firmly planted in *nix-world. I never really considered anything other than Linux. I told my coworkers that my goal was to “run Vim faster than it’s been run before.”
TL;DR
Here’s the part list on PC Part Picker: https://pcpartpicker.com/user/hoop33/saved/V7wcTW. In addition, I replaced my 30″ and 27″ monitors with an AOC 43″ 4K monitor. I’m still settling in, but it’s fast.
For those who don’t want to click the PC Part Picker link, here are the parts (unlinked — they’re linked from the PC Part Picker page):
- CPU: AMD Ryzen 9 3900X 3.8 GHz 12-Core Processor
- CPU Cooler: NZXT Kraken X52 Rev 2 73.11 CFM Liquid CPU Cooler
- Monitor: AOC U4308V 43″ 4K UHD Monitor
- Motherboard: Gigabyte X570 AORUS PRO WIFI ATX AM4 Motherboard
- Memory: G.Skill Trident Z Neo 64 GB (4 x 16GB) DDR4-3600 Memory
- Storage: Corsair MP600 Force Series Gen4 2 TB M.2-2280 NVME Solid State Drive
- Video Card: EVGA GeForce RTX 2070 SUPER 8 GB BLACK GAMING Video Card
- Case: NZXT H710i ATX Mid Tower Case
- Power Supply: EVGA 850 W 80+ Gold Certified Semi-modular ATX Power Supply
The Build
I last built a PC in 2005, and I’ve largely been using Mac laptops since. I was rusty. Googling found me gaming rigs, which aren’t too far off from what I sought. I got ideas and gained confidence from the Stack Overflow Developer Desktop Build 2019. Coworkers gave me some feedback, and my son suggested I ask his friend Max for any ideas. Genius advice. Max probably shaved 40 hours off my build. PCs are a lot more complicated than they were 15 years ago!
The parts had all arrived by last Thursday around 8:30pm, and I started to build to cheer Max on.
The building process could have been a cross-generational Hallmark movie. I explained to Max what a cool invention “ZIF Sockets” (Zero insertion force) were. He couldn’t believe you used to have to muscle CPUs into sockets. I was overwhelmed by the sheer number of fans and where to put the radiator. I’d last worked with a maximum of two fans: one in the power supply and the other on the CPU. Come to think of it, I don’t think the 486 I built circa 1992 had any adornment atop the CPU. But it did have the all-important turbo button (something else Max might not know about).
This build would have taken me hours of back-and-forth with booklets and verifying what plugs into where if Max hadn’t been there. Instead, by 10pm we were almost done. The only real adventure we’d had to that point was that the pipes coming off the CPU cooler blocked a RAM slot, so we had to remove the cooler, rotate it 180 degrees, and remount with the logo upside down.
With only the power supply and graphics card remaining, we unboxed the power supply. Max said, “Uh oh.” I waited a few moments, and then he explained that the PSU I’d ordered had only one CPU connector and my motherboard needed two, and that he’d seen this before with Ryzen builds. He then related a tale of someone’s impatience — “Aw, I’m just going to try running with one” — leading to a fried motherboard. I’d never actually seen a modular PSU before, so I was way out of my depth. So Max showed me what to look for in a different PSU, we installed the graphics card, and we called it a night.
The next morning, I slipped from work to Best Buy and bought the requisite power supply. That’s the PSU in the parts list above — the EVGA 850. The one I’d originally bought was a Gigabyte G750H, which I’m sure is a great power supply in the right circumstances. Incidentally, returning it to Amazon was simple — I filled out a form on the Amazon website and dropped off the unpacked, unlabeled, re-boxed power supply at my nearest Whole Foods.
Max returned Friday night in what I thought would be simply sliding in the power supply and powering up. I figured he deserved to see first POST. It was nearly that easy — power supply went in, but we had trouble with some fans. After various troubleshooting, we plugged all the fans directly into the motherboard, bypassing the fan controller. Also, the machine refused to POST, so we reseated the RAM. And then it was glorious.
We turned on XMP, but the machine wouldn’t boot, so we turned it back off. A couple days later I flashed the BIOS (F3 to F11 — lots of patches in 6 months), and now XMP is working and the RAM is running at 3600 Mhz instead of 2133.
The CPU cooler won’t light up, although I can get the status so I know it’s pumping. I’ve tried both krakenx and liquidctl and I can get status but no lights. I’ve tried reseating the USB cable, and even connecting to an external USB port, but nothing. I’m not giving up, but I’m not terribly concerned,
I’ve installed Pop!_OS and it feels familiar — I’ve used Ubuntu off and on for years. I wanted something a little different, but not too different, and Pop!_OS seems to be just what I was looking for. I like to tinker some, but mostly just have the operating system operate. I’ve also been updating my setup script to work for both Linux and macOS.
It’s a great machine. It’s fast and the 2 TB drive means I don’t have to bother with selective sync on my Dropbox. I’m getting used to Ctrl vs Cmd — more than once I’ve locked my machine (Cmd+L) instead of setting focus to the address field in Firefox (Ctrl+L), and I wonder if I’ll end up remapping keys since my day job is all on Mac. I’m also wondering how I’ll address some of my Apple-centric tools — tools I use that sync across my Mac, iPhone, and iPad. To wit:
- Evernote — Browser-only on Linux
- Ulysses — no Linux solution
- Things — no Linux solution
I may give Joplin a try, though I would rather it had a clear business model rather than asking for donations.
Critically, though Neovim runs extremely fast. Enjoy the pictures!
1 Response
[…] you read through to the end of my The Ultimate Linux Developer Desktop 2020 post, instead of just copying the PCPartPicker list, you saw that I couldn’t get my CPU […]