How I think about buying hardware

Manel Vilar
6 min readApr 20, 2020

I had recently a discussion with another “old-skool” developer, where we could stat that modern hardware sucks, or it’s too expensive, or both. We are in the 21th century twenties, and it’s still not easy to be satisfied with hardware. There are many reasons why that happens, and also there are some ways of overcoming that. It’s not too much about saving money than replacing your hardware when is really necessary for your work/leisure. That’s the reason I decided to write this small, “random-thoughts” guide for developers. Please don’t take it as mandatory advice, it’s only my point-of-view.

Main development machine(s)

First step is to determine which development machines do you need. Most people use laptops right now. One of the main problems it that they usually age really quickly. Batteries lose life and HDDs become old. SSDs can break too and it’s not possible to replace them in newer thin and ultrathin models, which are cool for mobility or browsing internet on your couch, but their lightweight is a trade off for obsolescence. There are probably some ugly new models with legacy design were you still can do that, but they are the minority. Some people buy new cheap model made of plastic, with low quality cameras and screens. I would personally avoid them, as bad quality components tend to break earlier, and continuously work with them can be painful, as some brands are still selling really cheap 4 Gb. RAM models, or they use really old motherboards and low power processors.

If you want a “safe” invest, second hand early 2010s laptops still provide good value for the price, especially Lenovo models (no affiliation with that brand). Sometimes you can find really good second hand models in the range of 200–400 euros, that you can easily upgrade to 16 gb. of RAM and an SSD. RAM is usually more important than performance, unless you are doing 3D/VR development. Many old models offer also IPS screens and other niceties, harder to find even in newer cheap models.

Desktop boxes are disappearing, even for gamers, but a very interesting possibility is buying some mini desktop like Intel NUC, Zotac or even a MacMini. It’s possible to replace broken parts on them although MacMinis are usually subpar on that. As they are custom made, they usually cost a bit more, but their lifespan is way longer than any laptop, and is easier to make them really powerful. Right now there are not as noisy as they used to be, especially the MiniMac models.

Using SBCs like Raspberry Pi is a trend worth to be explored, but it’s obvious that despite lots of recent performance improvements, they cannot even match a modern low-end computer. Even storage can be painful, relying on hats and a USB connection. They simply were not made for desktop usage, unless your requirements are really, really low. And even if they are, you will probably want more at some point. Meanwhile, when you are compiling or even running tools like Webpack, you really don’t want to wait, you need something fast. Use SBCs for connecting to other hardware controllers and sensors, that’s what they were made for.

Other hardware

As long as we are in 2020, you probably would need to work at home for a while ;). For that reason, one of the best investments you can do is to buy a good screen. Anything bigger than 1980x1080 would do fine. I have always been tempted to code exclusively in laptop screens at home, but if you are going to spend 8 hours in front of screen, better to use a big one that helps you to keep a better posture. Your back would be incredibly grateful. There are some complaints from users that they don’t like big screens, as they are too distracting, but you still can find good deals under 30". Ultrawide (21:9 ratio) is usually better, as we developers like to split or work space vertically. Be aware than most ultrawide are usually 34" or bigger. Screens usually last for a very long time, so they are one of the best investments you can do. And for development you don’t need a gamer refresh rate, but there are some models easier to eyes. Get one of them if you can.

For massive storage, we are leaving in the cloud era. Most people trusts it for doing backups, there are many services for that. With a quite decent storage size in your workstation and one of those cloud storage services, you can be pretty confident that all your precious data

There are quite few people who have NAS at home. They are very convenient, but they face many of the problems that custom hardware has, including running proprietary software. A hardware alternative is to get an HDD bay, that works as a dummy NAS connected to your work station, and doesn’t require special drivers usually. You can also connect those bays to SBCs synchronized to an online service. Main problems with SBCs, is that they usually lose USB connections at some point. For that reason, is better to use a some hat that connects to the storage hardware.

I cannot recommend any solution on top of each other, it’s very important to do backups. Be aware that as a developer and and a hobbyist, I found two kinds of data: the important one I create and the one I can obtain from other place in the internet. For the former I want the best backup service. For the latter… well let’s say that there are probably many copies already on the market.

Operative Systems

Even if you don’t like it, there’s a close relationship between hardware and software, and usually OSs are their nexus. That’s the reason, even this is a hardware article, I am going to talk a bit about them in the next paragraphs.

Right now, I am writing this waiting for a Windows 10 update to finish. Do we really need to update so often our OS? I don’t think so. Also, old Windows versions need to be replaced by newer ones with bigger hardware requirements. Something similar or even worst happens with Apple hardware, where at some point some equipment is forbidden to upgrade to newer OS versions. That doesn’t imply that Apple hardware is not a good investment. Due to their refined design, they are collection objects, so people buy them even they cannot update them. In any case, as development machines, they have a shorter expiration date.

Regarding updates, I see Linux as an obvious alternative. Even most Linux distributions need to be updated, some of them use the “rolling-release” schema, that allows for less painful migrations. I have heard many good things about Gentoo, despite being well-known for being the “you need to compile it all” distro. I have personally used Arch, but the one I found fascinating is Nixos, at it keeps your configuration in a file and it’s easy to roll it back in case something goes wrong after updating. It seems Gentoo has something similar too, and it has been there for a long time too. Other alternatives are OpenSuse and Sabayon Linux. I personally know quite a few members of the OpenSuse team, so I can recommend it. They are doing an outstanding job.

If you are a developer, unless you are focused in a given platform, you will find all the tools you need in Linux. Most of the tools you will find in the other platforms are ports of Linux tools, anyway. Be sure to customize a bit your environment with nice colors and fonts, using color schemes as Solarized and Zenburn.

You can also use Linux for recovering old machines. My recommendation is to use lightweight desktops like i3wm or LXDE, or even no desktop in some cases, only console. It can look a bit weird nowadays, but you can do a lot of things with the console in a very handy way, from browsing in text mode, to handle your email or even play music and even videos in the terminal!

Conclusion

It’s not easy to be satisfied with your hardware without expending quite a few bucks on equipment, but the key point is to think on your own and avoid repeating mistakes. It’s normal to commit errors, like buying bad, defective hardware, but it’s not bad if we learn from those lessons. Everybody has to make their own path, and think we you want to be in long term.

--

--

Manel Vilar

Web developer focused on Javascript, PHP, Python and more...