Like many of you, I do pretty much all of my development on macOS, currently on a 2012 13” MacBook Air that is in desperate need of replacing (I’m waiting for those new MacBook Pros that are coming this fall.) I appreciate macOS’ short update cycles and usually work with the latest version available (yes, even the .0 releases – I like living dangerously.)
There’s also a self-built Windows 10 PC living in my office, which I mostly use for gaming (when I find time for it) and testing stuff on Windows.
Even though I’m impressed by what they can do, I’m not a huge fan of blindly throwing everything at Google’s or Amazon’s cloud infrastructure offerings, so I usually end up setting my own servers for client projects or my own. I usually do this at DomainFactory (formerly JiffyBox), and I almost always install the latest LTS release of Ubuntu on these machines. There are probably leaner Linux flavors (or even other operating systems) out there for servers, but it’s the one I’m used to (and would also use on a local machine if needed), so that’s that.
I currently do all of my browsing and most of my web-related development in Google Chrome.
It’s not the fastest editor, but probably the one with the biggest momentum right now – I do pretty much all of my coding in Atom. Before Atom, I worked with Sublime Text for quite a while; it’s still a great editor, and certainly speedier than Atom, but its development has become irritatingly erratic. On my servers, I use good old Vim.
Even if I feel quite comfortable with the Git command line, I very much enjoy using GitHub Desktop for creating actual commits and browsing a project’s history. For most of everything else, I usually fall back to the command line interface.
I’m apparenly quite boring and use the stock macOS Terminal.app for all my terminal needs. There once was a time where this wasn’t a smart thing to do, and I totally understood why everyone was flocking to iTerm back then, but Terminal.app has really turned things around over the last couple of years and become quite capable.