Which Devices/Hardware you need as a Software Developer (by role)

JoelBonetR 🥇 - Aug 11 '21 - - Dev Community

Once you start your career as a web dev you'll need to manage different parts of the project development life-cycle or related stuff, then people tend to think that having a computer is enough, well... it may be but probably not, and even it's the case, you may need specific hardware to work efficiently.

Let's group the recommended hardware by roles in the software development industry.

index


General recommendations

  • 256Gb SSD should suffice for development, depending on your career path, 500Gb SSD would be better
  • 8gb RAM minimum, 16b Recommended (some languages and IDEs consume more RAM than others in execution time, this is a general recommendation that most big companies follow)
  • A 14" fullHD screen for a laptop would suffice while in desktop I'll recommend 24/27" quad-HD (2560 x 1440) or 4K UHD so you can get a bigger workspace. Ultra-wide monitors are also good for some people, I personally prefer 2 different screens as I use a 27" main one plus a 24" vertical secondary monitor but this is only my opinion and likenesses, you'll need to find yours.
  • CPU - This is probably the most important thing, specially for a laptop. Any mid-tier CPU should suffice for some jobs while a high/enthusiast would be better for other jobs, just make sure, specially if you go for a laptop that you don't get a multimedia CPU (intel or AMD with model names ending in *U* such i5-8650U or Ryzen 5 3500U, for example) as those CPUs are not meant to deal with high CPU demanding tasks they will slow your entire development process, specially if you use a heavy IDE or need to have some different software pieces running and indexing files in your computer such Git, Git GUI etc
  • GPU - you can work with a multimedia cheap one unless you need the GPU to execute tasks such GPU hardware acceleration or AI training.

Front-end

You'll need to check eventually that your code is working on each current version -at least- of the major browsers, taking in mind both desktop and mobile versions.

This means you need to be able to test your UI in Chrome, Safari, Firefox and Edge as well as Chrome mobile, Firefox, Safari on iOS, Chrome for Android, Firefox for Android.

Taking into account that all browsers on iOS are built-in at the top of iOS Safari it's a bad idea to get an iPhone unless you can use a good Android VM on your desktop such Bluestacks and even that, the experience could not be the same as it lacks system devices such mic, camera, gyroscope and so on.

You can of course, use a single Apple device such a Macbook Pro or an iMac to test your UI using all of those browsers but most of time a macbook pro is expensive for most budgets and it's resources are limited while apple does not let you upgrade them (RAM and SSD are soldered into the motherboard and you can't change the CPU as well).

Thus you can get a nice windows/linux laptop or desktop and pick an iPhone as your main phone or keep you Android and get an iPad (the cheapest you can get such iPad 32Gb or iPad mini 64Gb) as alternatives.

Options Recap:

  • Mac with Android emulator
  • Mac + Android smartphone
  • Windows + iPhone
  • Windows + Android + iPad

The hardware recommendations for front-end would fit into the general recommendations according to CPU (R5, i5 or better), 16Gb RAM (8 minimum), 256Gb SSD or better and you'll need as much screen available as possible, specially when using techs such HMR or WYSIWYG so you can code and see the changes at the same time, then 2 screens, a single larger ultra-wide (34" or better) or laptop screen + another screen would be recommended.


Back-end

This is simpler than the front-end, just make sure you have a good CPU for intensive and/or high CPU demanding tasks, avoid intel or AMD with model names ending in U such i5-8650U or Ryzen 5 3500U, better pick a high or enthusiast CPU such Ryzen (4800H, 4950H, 5800X, 5900X) or intel (1185G7, 1165G7, 11700F, 11900F).

Same general recommendations on RAM, SSD, screen and so on.


Full-Sstack

Well, it's just a mix of the two blocks above, use the same recommendations as Front-End but try to get a better CPU (R7, i7 or better) for the back end part.


AI/DL/NN/ML

  • AI: Artificial Intelligence
  • DL: Deep Learning
  • NN: Neural Network
AI is an umbrella discipline that covers everything related to making machines smarter. ML refers to an AI system that can self-learn based on the algorithm. Systems that get smarter and smarter over time without human intervention is ML. Deep Learning (DL) is a machine learning (ML) applied to large data sets. While a Machine Learning model makes decisions according to what it has learned from the data, a NN (Neural Network) arranges algorithms in a fashion that it can make accurate decisions by itself. Thus, although Machine Learning models can learn from data, in the initial stages, they may require some human intervention.
Same recommendations than back-end plus a good Nvidia GPU to train your AIs, the better the GPU, the faster the training, if you can afford it, an RTX 3090 would work nice, other options are Titan RTX or Titan V for example. Of course you can use a 3080 for it, even a 3070 or 3060 but each step to a lower stair that you take, it will increase substantially the time it will take to run through big model sets.
!important note the "ti" versions are meant for gaming, does not implicitly means it will work better for your AI training process, specially because the amount of cores and the bandwidth is usually the same, check benchmarks to know if the boost they added to the ti version can help you or not for this tasks.

It depends on your current situation, if you start learning about it but don't plan to work on it professionally -you are doing it just for hobby- you can use any Nvidia RTX (2000 series or better recommended) or AMD card (Vega or 5000 series or better) for it.

Just check what you want to learn as nvidia has Tensor cores that work native on different stacks while AMD has ROCm as intermediate platform to deal with this stacks.


Mobile/tablet

This is pretty straightforward,

iOS:
if you plan to develop for iPad and iPhone, you need a Mac, an iPad and/or an iOS. I heard that with the current (maybe?) iPad Pro with M1 chip you can code as well, so maybe you're good with an iPad pro + iPhone, check it to make sure I'm not wrong.

!important note: If you got some device that supports the current OS versions, you can use it but if you need to buy a new one, pick the latest so it will support more OS versions in the future thus you'll be in need to renew your device some years later.

Android:
If you plan to develop for Android you'll need -of course- an Android. A Google Pixel would be the recommended device No.1 as it's Pure Android, even android one series have some flavours that may differ from the pure android so... no doubt here.
You'll need a desktop or laptop as well, same recommendations than for front end.

!important note 1: in the past, Android Studio device virtualization used HAXM only which means it needed an intel processor to work. This is not true anymore, VM acceleration on Windows can use one of three hypervisors: the Intel Hardware Accelerated Execution Manager (HAXM), the Android Emulator Hypervisor Driver for AMD Processors or the Windows Hypervisor Platform (WHPX).
!important note 2: If you got some device that supports the current OS version, you can use it but if you need to buy a new one, pick the latest so it will support more OS versions in the future thus you'll be in need to renew your device some years later.

Big Data/Data analytics

Same recommendations than for back-end would work well, but with a bigger SSD because... you know, it's BIG data :D
Out of jokes, a 500Gb SSD or better would be a good recommendation.


Footnotes:

Of course, if you do more things on the computer the resources may vary, for example, if you like/want to game on the same device, you can opt for a better GPU and a bigger SSD just to be able to install some games.

This recommendations are set to cover the needs and to achieve a good efficiency, you can also code apps using a "shitty" i3 10110U with 4Gb RAM or even train an AI using your CPU but you'll be waiting for the laptop to finish tasks instead the laptop waiting for you to code and execute more things.

If you are searching the best peripherals, specially keyboard because we all know this is our main tool to interact with the computer, check this post and it's comments.

Do you have any specific question? Do you feel some role missing here that you want me to specify? Please, leave a comment so I can update the post :)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .