Lots of companies make PCs today. And this article is written specifically for the thousands of developers who use a Windows Development Environment for working. Many of you may not have the $$$$ to spend on the best experience, so I am trying to provide the best guidelines on what to get based on years of my own research on this topic.
Let us make somethings clear at the very beginning:
- I know the new generation loves to use thin and light laptops for coding, but note that I have definitively found that even very old desktops are much, much faster than the latest and greatest, super expensive $7K workstation laptops.
I do get that you can get better flow in thin and light laptops. The way to do that would be RDP into a more powerful desktop from a thin and light laptop.
- Because a lot of the experience revolves around Windows 10 which usually sucks, to deal with hardware issues, it is best to build your own desktop “by hand” so that you can easily replace or upgrade hardware. This article does not deal with this scenario.
As a note, I have never in my life got an Intel CPU for a build. I have never been able to agree with a business model which forces consumers to buy a new motherboard just to upgrade the CPU. I have only ever had AMD CPUs. I think one of the newer Ryzen Chips with a large number of CPU cores as well as GHz would make a great CPU for a custom build.
Apple vs. Microsoft
Apple makes the best laptops period. This article is not about comparing the Apple and Windows ecosystem.
Apple wins hands down on stability and “laptop” use cases. The best version of Windows was Windows XP. Everything which has come later has been worse. I have used more Windows PCs than Apple PCs in my life. Apple wins in every way when compared to Windows PCs because:
- Backup just works & you never, ever lose data — no matter what.
- Restore just works from any Mac to any other Mac — it does not matter whether it is a Mac “Desktop” or Laptop.
- Sleep and resume from Sleep works flawlessly.
- Safari is the best browser to use.
- This maybe me, but Mail is the best email program ever.
- The only bad experience on Mac is Microsoft Apps including Microsoft Office. Even these apps works better on the Mac than on Windows.
- A Mac is hands down the best way to do some work when you feel like it after inspiration strikes. A Windows PC just does not do that.
But remember that Windows Development is best done on Windows, so that you have the same experience as consumers using Windows PCs.
Within the Microsoft Ecosystem
- Lenovo/ IBM makes the best and most stable Windows laptops. I would go with them but for the fact that to keep their laptops stable, they are usually a bit “behind” in technology, and pricey. I can vouch for the stability of the Lenovo Windows laptops 100% for a traveling Sales/ Marketing/ Non Developer person.
- I used to work for Microsoft, they used HP Elitebook as the standard within the company at that time. That replaced IBM PCs when it became Lenovo. HP makes great PCs, but again they are quite pricey for the vast majority of small — medium business and WFH use cases.
The reason why I have gone with Dell and stayed with Dell is because when I did my research I found that they had the best prices and they are not lagging behind in technology.
Dell Precision Desktops
My fervent recommendation here is to go with desktops if you can. Because the sheer performance you can get with a desktop is much, much better than even the most expensive $7K laptops — and it primarily has to do with the fact that, the fastest laptops with the best CPUs and GPUs can’t handle heat. And the smaller and thinner they get, the slower they become as well.
No matter what you believe, I can assure you that you are wasting a lot of money trying to find a thin, but fast developer laptop. If only you knew how much slower it actually ran, you would never go for this.
When the new IT guy saw my new 5820, I remember him looking at it wistfully and saying: “Now, this is a real office desktop. This is what I had at my last job” (for whatever reason everyone at my work have XPS laptops unless something else is specifically requested for).
What I have migrated to in the long run is a Dell Precision 5820 tower with 32 GB ECC RAM, ~512GB nvme SSD with RAID 5 and a 10 core, 20 thread Xeon CPU which can go about 4 GHz turbo.
Note the following carefully as these details matter a lot:
A Xeon CPU with a balance of core count and frequency
Go with Xeon whenever you can because it can handle sustained workloads for longer and with better stability.
Get the MAX cores you can — but pay attention to the MAX frequency. 64 cores are no use, if the MAX frequency is only 2.2 GHz. FYI… It is not too bad, but higher frequencies really matter. I do remember wistfully the time I used to work with a server which had 64 cores and 128 GB RAM as my main development environment, because it was lying unused by anyone in the company.
The PSU Matters
Get the PSU which can handle the most power, because 4K capable GPUs and Xeon CPUs can consume a lot of power when you run heavy workloads like I do. Dell had a single PSU upgrade option, I went with that.
- I do remember getting a PCIe card with extra Thunderbolt 3 capable ports. Today I am glad, I got those because those could be used for 10 gbe ethernet in the future.
The SSD matters the most after the CPU
Get the fastest nvme SSD you can afford. You can never go wrong with Samsung nVME SSDs.
This really matters and remember that the larger capacity nvme drives are really, truly much, much faster than the smaller capacity ones because of the way their internal hardware is designed (I forget the details, but there is a difference in the memory controllers and MAX throughput at a time with the larger nvme drives).
You maybe surprised that the SSD maybe the one thing which makes the most difference in a development environment.
1 TB is the sweet spot for the OS drive for a developer. Unless you work on very large files, you will probably never go anywhere near 1 TB. I have found that 256–512 GB can be limiting, even if you mostly work on code as sizes of the Development Environment increase over time.
I just want to note that it sucks that Microsoft in 2021 does not let me store all my data in a separate drive from the OS and programs so that it is easier to separate the Disk IO of the OS vs. user data reads. Backup and restore would also be easier in scenarios of OS drive failure.
The options for SSDs are pretty complex. I recommend working with your IT person to pick the options which give you hardware RAID 5 with 4 256/ 512 GB nVME SSDs.
ECC RAM Matters
Like I have believed for a while as I am an Electronics Graduate, and I have heard from Microsoft Engineers who move internal bugs to Intel, even Linus Torwalds has come out and said that we should be using ECC RAM as non ECC RAM causes instability. If you can, and it is available, always use PCs which support ECC RAM, because while others PCs crash and burn with regularity, yours will continue to work fine without issues like mine.
There is a sweet spot for RAM size
If your development environment can eat up as much RAM as it needs to, you are lucky and you can buy as much RAM as you can afford all the way from 32GB — 128GB or even more.
If you are like me and mostly use Visual Studio which is not a 64 bit process even in 2021 (shame Microsoft!), then there is actually a sweet spot I have found.
Do not get 16GB RAM, I can assure you that, there will be scenarios where your computer will throttle at about ~15.9 GB RAM and perenially seem starved.
I got the idea from Lenovo who sell laptops with a unusal 20GB RAM. That got me thinking, why would they do that?
Turns out that once you go just a bit beyond 16 GB RAM, Windows 10 atleast never goes anywhere near 20GB no matter how hard you try in a Visual Studio/ MS Office/ Heavy Browsing Environment like I have. It just does not — it sticks to about 17–18GB RAM at the most.
This is unlike a Mac which handles memory a lot better and can often use as much memory as you throw at it, speeding up your experience tangibly.
Anyway, so if money is an issue, I recommend going with 8 + 8 + 4 = 20 GB RAM because this will be more than enough for most situations.
If you can throw more money at the PC, you can do 24/ 32 GB RAM. I have gone with 32 GB for my Office laptop and desktop — but note that I have again never seen my memory usage even in that 15.9 GB use case go beyond 17–18 GB RAM, unless I am deliberately doing something to load memory.
20 GB is the sweet spot. You can always add more memory in the future if you want to.
Don’t underestimate the Humble UPS
Disk corruption can significantly affect the stability and thereby performance of Windows. A UPS can help prevent disk corruption during power outages. I would also never pull the plug on a PC. These are small things, but it matters when the disk gets corrupted, windows gets unstable and performance gets affected.
Do not underestimate the importance of the GPU — but don’t burn money getting an expensive GPU in a laptop because no matter how powerful the GPU is, it will be unused because of heat dissipation issues.
You really need a great and expensive GPU on a desktop, especially if you have a dual 4K monitor setup which you want to run at 60Hz.
Yes, I have tried consumer GPUs and they are unstable in such a setup up until a few years ago. I can confirm that business class GPUs like nVidia Quadro — even the thin ones which seem to be less powerful than their consumer counterparts, are way more stable for work use than consumer GPUs.
You will need to have a GPU which has at least 8GB memory which provides 4GB for each 4K monitor you are driving.
Note that with consumer GPUs, AMD is more stable than Nvidia for sure.
Why this really does matter
I spent a lot of years and a lot of money researching on how to improve the performance of my development environment. I did not care about the GPU before, and hence I always used to feel that something is missing which is severely impacting performance — even basic stuff like browsing, and MS Office, etc — especially on resolutions higher than Full HD (greater than 1080p).
Here is what nobody tells you
What I discovered is that 4K monitors or really any high resolution monitor setup where the Windows DPI setting is more than 100% (like 125–175% usually) is a special case in windows.
Having this makes the GPU work harder and it becomes a bottleneck. I do not remember the name of the process — but on further study, I found a specific Windows OS process which was getting very high usage and becoming a bottleneck for the performance of my setup.
Update: I believe the process is the Desktop Window Manager
That is when I got my first “expensive” (for me) consumer GPU and installed it and noticed that this made a difference. Especially, if you tweak the settings so that it uses the GPU instead of the CPU, then performance improved a lot.
Did you know that even a console application uses a lot of GPU in windows when it is zooming through a lot of textual output? You would be surprised when you measure how much it does that.
You can measure and see the improvement in the usage of the afore mentioned windows process when more and more processes are configured to run using the discrete GPU rather than the CPU’s GPU in the settings of the video card. You can actually make out the improvement is performance in your app usage.
The best situation is when the CPU in any PC does not have an internal GPU, thereby forcing the computer to use the discrete GPU for all use cases. In this scenario (which is rare in laptops), you can maximize your performance by getting the best GPU.
Laptops usually come with a CPU which also supports graphics, even when there is a discrete GPU. Unfortunately because of this, the CPU’s GPU is used by default in most cases which has a significantly detrimental effect on performance even on very expensive laptops with $1K GPUs within them.
You can tweak the graphics cards settings in such cases to offload most of the processing to the GPU, but you will notice that you are unable to choose the discrete GPU for many of the core windows applications and processes including the one I mentioned earlier which deals with > 100% DPI setting in Windows. This is why today, I no longer recommend buying Windows “Performance” laptops.
My strategy hence is to get a heavy duty workstation and pair it with an Apple laptop from which I can RDP into it from anywhere to get work done.
The Windows Laptops I do have
I do have a Dell Precision 77xx series workstation laptop (from which I learnt most of the details for this article). They are great laptops and you can even configure RAID as well as they have ECC RAM. It is heavy and meant for desktop use though — like I said, if you are bound to the desktop, stick with a workstation.
A while ago, I was searching for a personal windows laptop. I could not bring myself to buy a “non pro” machine, as I would setup some development environment on it. I ended up with a “thin” Dell Precision 55xx series laptop — unfortunately does not support ECC RAM, but does come with a Xeon CPU and I upgraded it over time to 32 GB RAM and 1 TB nvme Samsung SSD (which made a surprising difference).
I used to use the 55xx series laptops when I would travel, but even these are heavy, so today I use an Apple 13 inch Macbook Pro. 15 inch is great, but honestly, even with all my eye issues, it is much easier to take a 13 inch laptop everywhere do stuff like writing this article with little to no friction — this always works, never hangs and the battery life is great.
Dell Precision Laptops
I know people who purchased Microsoft Surface Laptops and are cursing Microsoft because they are unstable. I regret recommending one to the “big boss” at work.
Dell is way, way better than Microsoft PCs because they have experience building Windows PCs which Microsoft does not have. There is an interesting article I read somewhere where Microsoft CEO Satya Nadella asked another PC Vendor CEO why they did not have the problems Microsoft saw in their Surface Hardware.
It turned out that the other company never used something which Microsoft was using — because they found it did not work well. Microsoft thought it would work because their OS team said it did — but in reality, all the PC Makers knew it never worked properly.
I remember once there was a special part I ordered from Dell for my 77xx series laptop RAID configuration with nvme — nobody else in the world makes a part like that for nvme SSDs. Clearly, there is a lot of hidden innovation happening within a company which is not really that new, and this is heartening to note. These guys can surprise you sometimes.
Having said everything I said, not everyone can use a Apple laptop for the “moving” workstyle. And there are people who need to build code while moving around, maybe working in a Coffee Shop, or transient workspace.
If you have to have a laptop where you build code instead of RDP to a workstation over the Internet, I would still go with a 75xx series Precision laptop over the 55xx series Precision.
Because the 75xx series, smaller laptop does not try to high fly like the 77xx series, they are smaller than 77xx and do a better job of handling performance vs. weight/ size.
The 55xx series is thin, I admit, but you should not be compiling code on that kind of laptop. If you buy the XPS version, get ready to replace that a lot as things wear down over time.
I do want to note here, that my 55xx series laptop has lasted a long time, and I am very happy with its longevity. You upgrade the memory and the SSD, and this thing can scream as a RDP option which can do anything other can code compilation including heavy MS Office, RDP, browser, etc.
Improving Performance further
This has proven very useful to improve performance further on all my Dell PC’s:
One of the Few Innovations I’ve Seen From PCs in a Long Time Is From Dell
For a long time, I have believed that the Windows ecosystem has been completely stagnant. This is why I eventually…
This was a surprising learning which I truly believe any Dell owner should read:
The surprising reason why your over configured Dell laptop is slow & how to fix it
My Precision 5510 Dell laptop has a Xeon CPU, 32 GB RAM & 1 TB nVME SSD. I got it refurbished from Dell a few years ago…
Once upon a time in Windows land…
It was possible to install Windows Server on Dell Desktops and Laptops. Developers who knew how to maximize their experience were able to install Server OS even on Dell Laptops.
And I can tell you that Windows Server worked 200% better than Windows 7/10 on desktops and laptops. Even without the drivers being available for everything.
It is sad that this is not possible to do today even with a Desktop Workstation like the 5820. I know, performance and stability could be much better with the Server OS. But, with the $$$ spent on the OS license as well as the driver support for too many advanced technologies, including the need for docks, and other peripherals, this is simply not a good idea today.
I would still have done it. But, these are expensive work PCs. I was surprised to see no Server OS option when we configured even the Workstation PC on the Dell website.
But, if you build your own PC, then this can still be done. The best windows, is windows with no specialized hardware requiring specialized drivers.
Dell is not perfect — nobody is. But I have used Dell laptops and PCs for a while. I buy their pro equipment mostly because they support upgrades without voiding the warranty.
I have used their warranty for work laptops, and their onsite support — they do send someone great and they do fix issues onsite. It was not a bad experience at all.
You have the option to renew warranty when it expires for the pro laptops and desktops. I have found that useful, in case I don’t want to spend on expensive repairs.
I use Dell Command Update to update my Dell PCs atleast once a month. If things are running well, I tend not to run the minor updates, but if Windows is already unstable because of Windows Updates, then I do run all the updates I can find, and usually it resolves most of it.
What you don’t want to do is to not run updates at all ever, and then you have a hundred pending Dell and Windows updates, and you find your PC spend 4 hours running all the updates by itself because it was pending so long.
Dell & Windows updates used to be nightmares. Dell has improved more than Windows in this regard. I have noticed when I had an HP laptop that they do not provide frequent updates the way Dell does. I have learned this is a disadvantage over time. This is also why Dell PCs can retain their performance longer because optimizations & new technologies eventually get to old PCs as well.
I notice that Dell iterates a lot, and is always improving stuff, especially when the first take is not great like the 7710 series laptops. I would buy the second or third generation of some of their machines as I have noticed (sometimes via warranty) that even the motherboard layout has improved for better heat dissipation in the newer models as compared to the old ones effectively fixing many issues.
I think pricing is the reason you get into Dell, and the experience is not too bad. Thinking about it new, I believe you get newer and more cutting edge technology from Dell as compared to HP and Lenovo which tend to be more stable, but are slightly “behind” Dell in comparison. To bypass issues of being on the cutting edge, always buy the business line laptops and desktops which are more stable than their consumer counterparts.
To be continued…