Lately, I've been focusing on practical insights into modern software deployment and optimizing workspace ergonomics. In Teams using Next.js and Vercel have an advantage, I delve into the power of CICD, advocating for using platforms like Vercel to streamline deployments, allowing developers to concentrate on building rather than logistics. This approach emphasizes the importance of adopting a fast development loop and utilizing Next.js to unlock the full potential of React applications.
In another recent post, The best hardware setup for software engineers, I discuss the benefits of a multi-monitor setup and the significance of ergonomics in boosting productivity. Highlighting the investment in a high-quality setup, I suggest that companies supporting this can significantly increase developer efficiency. These topics reflect an ongoing commitment to enhancing both the development process and work environment.
Teams using Next.js and Vercel have an advantage
During my time at Palo Alto Networks, I spent most of my time working on a product called AutoFocus. It helped cyber security research teams analyze files traversing our firewalls for signs of malware. It was pretty cool, fronted by a large React application, with a bunch of disparate backend services and databases scattered around.
One of the things that was difficult to do was deploy our software. We were on a roughly 3 month release cycle to begin with, which meant several things:
- Out-of-band bug fix releases were expensive
- We didn't get much practice deploying, so when we did, it was a team effort, error prone and took a long time.
- Trying to estimate and scope 3 months of work for a team of 10 is a fool's errand
Deployment meant getting most of the team into a war room, manually uploading build files to various places, doing a sort of canary deploy, seeing if things seemed ok, then rolling out to the rest of the world. Sometimes we decided to roll out architectural changes to reverse proxies and things at the same time, just for fun.
The best hardware setup for software engineers
When I'm writing software I usually have the following windows open, all at the same time:
- 2 column layout VS Code (window = 2560 x 2160)
- A fullscreen-equivalent browser with usable console to see what I'm working on (window = 1920 x 2160)
- A large terminal window (window = 2560 x 1440)
- Chat GPT (window = 2560 x 1440)
- A full-screen browser with all the stuff I'm researching (window = 2560 x 2880)
I find tabbing between windows to be a great destroyer of productivity, so I've spent a good deal of time and money over the last few years iterating on a hardware setup that lets me see everything at once. Today, it looks like this:
I went through a number of iterations when it comes to monitors. For a long time I used dual 32" 4K IPS screens, but even that wasn't quite enough pixels. It's hard to physically fit more than 2 32" screens on a desk - they're too wide already, and it would not be ergonomic to mount them above each other.