Everybody have their preferences and these are mine, maybe you’ll find something that’s useful for you. The context you should have is that I mainly do backend development in Java making computers talk to each other and read and write things to and from various types of storage. But I also end up in the frontend sometimes and also poke around down in many Linux machines. Like everyone I also go through a lot of mail and web to know what to do day to day.

I used to like to strive towards the perfectly tweaked setup for me and to write the perfect code according to some metric of cleanliness or optimal performance. Now I try to go for whatever lets me spend the least amount of time in front of a computer, especially unexpectedly. So I use products that have sane defaults, that just work, and can be fairly easily replaced. I try to write simple code that works and that can be easily replaced if the needs change instead of trying to solve all future needs on the first try.

Hardware

Starting at the hardware end I like to use an Apple computer, I have a several years old iMac at the office and a new MacBook Air with the M1 chip for working from home or otherwise remote. I find that Apple makes the most polished beautiful computers that are actually useful for a developer, and that they are useable straight out of the box. I just no longer find it fun to figure out why one USB-port isn’t working after I’ve updated the kernel.

It gets even better when you buy in completely with an iPhone and an iCloud account signed in on all your devices with a bunch of storage. If I ever loose a device or when upgrading I can, by using the power of defaults, get back to work in hours. I just sign in, install the basic tools below, and keep going.

The main complaint I’ve seen is that a Mac is not the cheapest way for you to buy a specific collection of parts. I don’t resell computer parts so I find this complaint completely irrelevant.

Software

The piece of software I do the most work in is IntelliJ IDEA by JetBrains. If you are developing Java you should already be using it. Other tools may be free but don’t value yourself or your time that low.

Screenshot of IntelliJ

I have Visual Studio Code installed since everyone needs a text editor that isn’t necessarily a complete development environment.

Screenshot of Visual Studio Code

The terminal included in macOS isn’t necessarily the best so I use iTerm2 instead. Since I like the defaults the developers there have chosen I use fish as my shell.

Screenshot of iTerm2

For all the tools needed in the terminal I use Homebrew, it’s fast and easy to use. I’ll probably write another article about some of my favorite tools I have installed.

When I need to do more complex requests than I do with cURL or HTTPie I use Insomnia. They seem to be trying to build a larger and more complex product which I think is a bad idea so I might switch in the future but for now it works fine.

Screenshot of the Insomnia rest client

Have you heard about this cool new thing called pen and paper?

My best purchase of late have been a couple better pens and some nice notebooks. It might sound simple but writing down thoughts and the things you need to do and then crossing those tasks out feels so much better than doing it on the computer. Anyone having used Post-Its instead of moving blocks on a website to manage tasks will most likely know the difference.

The two pens I currently use are the Lamy AL-star and the TWSBI ECO Clear fountain pens.

The pens I'm currently using
Just try to not start collecting pens, I've heard it's expensive

If you haven’t used a fountain pen before I really recommend trying one, it’s like any other pen except that it feels good to use it. You just need to get notebooks with slightly better paper in them since the ink might bleed through otherwise.

Conclusion

I think those are the basics right now. Let me know if I’m wrong and should be using your favorite tools instead.