My Developer Setup – Windows, Mac, Linux, and Way Too Many Monitors
As a software developer, I’ve somehow reached the point where one computer apparently isn’t enough.
My main development machine is currently a pretty beefy Windows PC. I also use a Mac and Linux regularly, depending on what I’m working on.
But lately, I’ve found myself wishing I could make one pretty major change to my setup:
I wish I could move completely to Mac.
Unfortunately, there are still things I use every day that require Windows, so for now my setup remains a mixture of Windows, macOS, and Linux.
And honestly, it works pretty damn well.
My Main Windows Development PC
My primary development machine is currently a Windows desktop:
- AMD Ryzen 9
- 128GB RAM
- NVIDIA RTX 2070
- 2x 2TB NVMe SSDs
- 2x 1TB SSHDs
Yes, 128GB of RAM is probably overkill.
Do I regret it?
Absolutely not.
Between software development, game development, Docker containers, virtual machines, compiling projects, and my terrible habit of keeping way too many things open at once, having that much RAM is actually pretty nice.
The RTX 2070 is definitely getting a little older at this point, but it still handles what I need it to do. Eventually that’ll probably be the next major upgrade.
Overall, this machine is an absolute workhorse. There’s really nothing wrong with it.
The funny part is that, despite all of that, it still wouldn’t be my first choice if I could only have one computer.
If I Could Only Choose One: Mac
If tomorrow I had to get rid of everything and choose a single computer for development, my answer would be easy:
Mac.
I just really enjoy developing on macOS.
You get a Unix-based environment underneath everything, a great terminal experience, fantastic development tools, and a polished desktop operating system on top of it.
I also just love the Apple ecosystem.
There are plenty of arguments to be made for Windows and Linux—and I’ve used all three—but Mac is the environment where I personally enjoy working the most.
If every tool I used worked perfectly on macOS, I’d seriously consider replacing my primary Windows development machine with a high-end Mac tomorrow.
Unfortunately…
Windows Won’t Let Me Leave
There are still things I use on a daily basis that require Windows.
That’s especially true when you start getting into certain development tools and game development workflows. There are situations where Windows isn’t necessarily my preferred operating system, but it’s still the practical choice.
And that’s really what prevents me from completely switching.
It’s not that I dislike Windows. I’ve used Windows forever, and my main Windows PC is incredibly powerful.
I just prefer working on my Mac.
So instead of picking one operating system, I’ve basically accepted that my development environment is going to involve all three.
Where Linux Fits In
Linux is also an important part of my development setup, just not necessarily as my desktop operating system.
For servers, Docker containers, backend development, testing, and various development environments, Linux is fantastic.
A lot of the software I work on ultimately ends up running inside Linux containers or on Linux systems anyway, so being comfortable working with it is incredibly useful.
I just don’t really have the desire to make Linux my everyday desktop.
If I’m sitting down at my desk and choosing which desktop operating system I actually want to use, I’m choosing macOS.
The Backup / Server / “Whatever I Need It For” PC
Then there’s another Windows machine that has slowly turned into my general-purpose backup/server/experiment box.
It currently has:
- 2x 4TB HDDs
- Virtual machines
- Docker containers
- Backups
- Random services and experiments
Basically, it’s the machine that gets assigned anything where I think:
“I don’t really want this running on my main computer.”
It’s incredibly convenient having another physical machine sitting around that I can throw VMs, containers, backups, or random experiments onto without worrying about cluttering up my primary development system.
One Desk, Multiple Computers
Of course, having several computers would get annoying pretty quickly if I needed separate keyboards, mice, and monitors for everything.
Luckily, I use a KVM switch along with a lot of Remote Desktop.
That means I can jump between machines pretty easily while still using my normal keyboard, mouse, and multiple-monitor setup.
And once you get accustomed to developing with multiple monitors, it’s incredibly difficult to go backward.
Which brings me to an ongoing disagreement in my house.
Apparently I Have “Enough” Monitors
My wife says I don’t need any more monitors.
I disagree.
There’s currently some perfectly usable wall space above my existing monitors, and I think a 55-inch TV would fit there quite nicely.
Do I need a 55-inch display above my monitors?
That’s really not the point.
I could put dashboards on it.
Server monitoring.
Build statuses.
Documentation.
A giant terminal window.
Or, most importantly, a terminal displaying completely meaningless scrolling text so anyone walking into my office assumes I’m hacking into the Pentagon.
That’s productivity.
At least that’s what I’m going to tell my wife.
The Best Developer OS?
People love arguing about which operating system is best for developers.
Windows.
macOS.
Linux.
After spending plenty of time with all three, I don’t think there’s really a universal answer.
It depends entirely on what you’re building.
For my work, Windows is still something I need. Linux is incredibly useful for servers, containers, and development environments.
But Mac?
That’s the machine I actually want to use.
If I could wake up tomorrow and know that every piece of software, development tool, and game-development workflow I use would work perfectly on macOS, I’d happily make the switch.
Until then, I’ll continue using all three.
And I’ll continue trying to convince my wife that the empty space above my monitors desperately needs a 55-inch TV.
What does your developer setup look like? Are you Windows, Mac, Linux—or have you also reached the point where the answer is simply “all of them”?