The Software Engineer setup I use daily
September 1, 2022
How it started
Since I started working as a software engineer, I always knew that to be productive, you had to carefully select your equipement and allow some time to test and see what's best for you, depending on your position. A software engineer, DevOps engineer, or engineering manager won't necessarily have the same hardware and software expectations.
During my first job at Calypso Technology, I started in 2010 with a simple IBM Thinkpad provided by the company, a 4/3 external monitor, and a generic keyboard/mouse combo. I didn't overthink it until I saw one of my coworkers bringing his personal Macbook pro to work and tinkering with it to make the company's software run on it (something that was never done before).
The company used Oracle 10g at a database, and Mac OS didn't support it at that time, so it took him a bit of time to dig into blog posts to find a way to make it work. Once he was done with it, 2 other people quickly followed up, and I was one of them. We brought our personal laptop to work, which isn't something I would recommend, but we were really passionate about it. As a result, Calypso Technology decided to renew laptops for all of its software engineers, including a choice between mac and PC... which was a massive decision at that time. The Oracle database wasn't supported yet on MacOS. Also, the software we shipped wasn't web-based (remember, it was the 2010-2012 era); it was an enterprise software written in Java with its interface in Java Swing (which could yield different results depending on the OS).
A few years later, I decided to buy an unofficial SSD Drive for my laptop, which wasn't supported by Apple at that time (I like to experiment with stuff). The drive was sold with an adapter made to fit in place of the cd-room slot. Coming back to the company, the first thing I tried was to clean and compile the project in its entirety. People gathered around me and were amazed at how the compilation execution time went from 15 minutes to less than 5...
My first setup as a freelance software engineer
In 2017, I accumulated around 5-6 years of experience as a full-time software engineer employee but decided to finally jump on the freelance path.
This was my setup when I started on day 1
I know, not very sexy, right?
Well, at least I had screen real estate, but those were cheap 1080p monitors; the resolution was 1920*1080 on each screen, but this wasn't retina resolution (pixel density of 1:1). The color profile was also different from the crispy clear Macbook pro screen (which was a 2016 gen). It gave me space to work, usually :
- the left screen was dedicated to my IDE (Webstorms)
- the right screen was a web browser split in two, one for the app I'm working on, the other one for docs/browsing
- the laptop was usually used for Slack and emails.
The keyboard was a super uninspired, cheap rubber dom keyboard (probably Logitech). The mouse, however, was a Logitech pro that I liked a lot, but his setup gave me two problems :
- After a long day typing on this keyboard, I felt some fatigue in my fingers. Also, the cheaply made ABS plastic keycaps were getting greasy and were hard to clean.
- The mouse gave me chronic pains and cramps on my right thumb... So I decided to explore some ergonomic ones.
My end game setup as a freelance software engineer
Now let me introduce you to the setup I finalized in 2019 that I still used today, except for the laptop that I updated from a 15 inches Macbook Pro 2016 to a 2021 Macbook Air M1.
Much better right?
I don't really like the idea of a double screen since you constantly have to turn your head sideways. I also wasn't a fan of using my mac screen as a 3rd monitor (it was a habit I kept from my first job, with the monitor above and laptop mac screen below).
So I decided to splurge on an LG UltraFine 5K Display, and boy, oh boy, does it make a difference...
- The monitor has a 5k display, which means you can use your IDE on a 2560 * 1440 resolution, without hurting your eyes, with crisp, clear text.
- The color profile is exactly the same as on the laptop screen.
- Also, my laptop only needs a single USB-c cable to the monitor, which also acts as a charger.
Also, one last thing :
This combo definitely was a game-changer for me...
The keyboard is a Happy Hacking Keyboard 2 BT, manually modified with silencers and custom keycaps. This device results from several years of trial and error testing different mechanical keyboards (thanks, reddit.com/r/MechanicalKeyboards). If you want to learn more about the hobby, you can follow this link, where I give more details about what I like and what I have tested. To sum up, this keyboard has been designed in Japan, is worth a little fortune (around 300 USD), and uses Topre switches, which give the best benefits from mechanical and rubber dome keyboards. Its compact layout also drastically reduced the travel distance of my fingers, which is a godsend to me.
The mouse is a Logitech MX ERGO, which replaced my old MX Master. While it felt odd at first, I loved using a trackball, which drastically reduced my wrist pain. It is precise enough to even work on design software like Sketch, Figma, or Pixelmator.
It's been 3 years, and apart from the laptop that I changed, pretty much everything else can remain the same for a while since I haven't found better!