I am continually amazed that so many people that I know (and everybody posting here so far, as I write this) use notebook computers as primary. Do you all really need to do real work at continuously-changing locations?

I do have a notebook for airplane/offsite work. But in my case, a desktop workstation is absolutely more productive.

Right now I use a Mac Pro, which I guess I bought in 2013 since that's when it came out. It was kind of expensive, but I've been using it for years, and it is still much faster for my workflows than any notebook (save 17" monsters, perhaps?). It has 64GB of RAM, so I can run Windows and Linux VMs without getting loaded. Since it's stationary and connected to full-time power (and UPS) I can augment the internal 1TB SSD with a big external 10TB RAID5 rig (a Pegasus2 thunderhole box, not as fast as the internal SSD but still does a respectable 900MB/sec or so).

It drives a 27" 5K display, and could drive another one, which I would totally do if macOS multi-monitor support hadn't gotten so shitty over the recent few releases. It could theoretically drive 3, but in my case I'm using some of the thunderholes for other purposes.

Plus: ECC memory. For me it has always just been a gut feeling, it makes machines more stable. But over the years, several helpful posts on this very internet forum (including a few recent ones) have been made by people who track the "cosmic ray" memory errors that will flip a bit from time to time. Nice not having those.

As for configuration, the best time-saver is to do a lot of development work in VMs, which tend to have great snapshotting capabilities. Automate setup of the dev environment, then nuke and rollback often. (I even do this every morning for some projects; with a Linux VM in VMWare Fusion, it's truly painless.) With guest-host filesystem sharing mechanisms, you can still use all the great Mac development tools, while running your code on Linux and using the tools there too. (Or even Windows, I've had to do that a few times and it works great. Or at least, better than on a physical Windows PC.)

The biggest pain point is actually maintaining the host macOS. I fantasize about moving off the Mac, and instead running Linux on a much beefier and less expensive workstation. But I estimate that's still about 20 or 30 years away from viability as a day-to-day workstation-class OS.

I do make a point to nuke and clean install my macOS every few months, though. That's the only way I've found to ensure that your dev setup is reasonably automated and reproducible.

Beyond the computer, I second the fellow in this thread who said the desk is a top priority. I use a GeekDesk motorized frame (with a slab of wood desktop I attached). Sitting desks are bad, standing desks are bad, but sit/stand desks are good.

Finally, I gave up on wireless input devices a few years back. That sucks in some ways, but I found wireless mice in particular to be flaky with like... 99% or 99.5% reliability. Which meant my mouse didn't work 0.5-1.0% of the time.

I use a Code Keyboard and a wired gaming mouse (even though I don't use the computer for games). Made my life easier, and like the Mac Pro itself, these devices seem to have a 5-10 year service life, not the 1-1.5 year service life I get out of a MacBook Pro before I have to buy a new one.