I often get asked about the tools and setup I use, so I’ve decided to try and keep a canonical reference at this URL. I’ve split the list into two loose halves, software and hardware.
Naturally, as a web developer, software is pretty important to me. I use many different tools depending on what I need to do, but the following is the kind of stuff I use daily, or would be one of the first things I install on a new machine.
When I worked at Sky, developers were issued with a MacBook Pro and a corporate Windows 7 desktop. The MacBooks came with PGP pre-installed, and didn’t have solid state drives, so every read from/write to disk took an age. This meant that most engineers just used their MacBooks as Spotify and Outlook machines, and blitzed their Windows box in favour of a Linux distro.
After several months of trying to run a large LAMP application on a commodity hardware Windows box, I soon followed suit and opted for Ubuntu. My first foray into Linux turned me into a CLI convert (mainly because the Linux/Ubuntu UI is too painful to look at for any length of time) and I soon started doing everything from the command line: filesystem traversal, Git, managing files, and editing text.
I just use stock Bash, because I’ve never found it lacking for anything I’ve ever wanted to achieve.
I haven’t used Ubuntu for a long time now, but on macOS I still do everything from the Terminal, which in this case is iTerm2. This means that my workflow is pretty seamless—I don’t need to frequently jump between many different apps because everything I need is right here in the same window.
How do you spot a Vim user at a dinner party? Oh, don’t worry, they’ll tell you. — @csswizardry
I’m a very avid and unashamed Vim user. I’ve been using it for about five years now and still learn something new every time I fire it up (a text editor with over 40 years of history has a lot to be learned).
I use vanilla Vim and not a derivative or wrapper (e.g. Neovim or MacVim), and I use it from the command line.
I do everything from my text editor, from drafting emails, writing code, writing articles, taking notes, arranging thoughts, etc.
I use a small handful of plugins, the key ones being
I don’t use much more than that—five years of using Vim means that you soon learn to achieve things without plugins.
I think the reason that most Vim users become so evangelical is because
I use Operator Mono in both Vim and my terminal because it’s just beautiful. I spend most of my days looking at code, so it ought to be presented well:
I only really have experience with the Git VCS, so it’s all I’ve really ever used. I adore Git for so many reasons, but my favourite thing has to be just how cheap it is to use: with how simple it is to create a repo, or how fast it is to make new branches, there’s no excuse for having unversioned work. It’s such an elegant, powerful tool—I only wish I knew more of it.
I use a bunch of handy tools from the command line on a daily basis:
I host my dotfiles on GitHub, if you’re interested in taking a look. There’s nothing really remarkable in most of them.
Chrome is my browser of choice for just about everything: browsing, building, testing. I use it on my desktop and my phone.
For cross-browser testing I have every other macOS-compatible browser installed on my machine, and an account with BrowserStack.
I have the full Creative Cloud subscription which gives me access to the entire Creative Suite. I mainly use Photoshop, but it’s nice to have Illustrator to hand for diagrams and other vector work.
I worked on a project for the NHS a few years back and the designer was using Sketch. I bought a copy so that I was able to properly translate the designs, but haven’t really used it much since. I really admire what Sketch is doing—proving that a small team can compete with the big players whilst making quality, affordable software—but I still find Illustrator way easier to use. I guess I’ve never really had a decent reason to fully immerse myself in Sketch, so I’ve only maintained a very superficial knowledge of it.
I must be a member of over 20 Slack channels—nearly all of my clients use it. And with good reason: Slack is great. I have a paid Slack account for CSS Wizardry Ltd. that I use for people I mentor, and for projects where it’s not possible or appropriate to use the client’s instance.
I use 1Password to manage passwords because, well, because why wouldn’t you? Hyper-secure passwords that can be changed at the drop of a hat.
ZenMate is a great little VPN that I use to spoof my location or access the internet over public or insecure networks.
I really like Netflix, but really don’t like their region locking (especially since they began blocking my VPN). It’s a super first-world problem to have, but I might be halfway through a series in the UK and want to catch up on it in my hotel in, say, the States, only to find that the content is unavailable. I’d actually happily pay triple the amount for a Netflix Worldwide subscription that I could access everything with.
Another criticism of Netflix is that there’s a clear focus on quantity over quality: there are some absolutely amazing things on there, but it’s so hard to find them for all of the other noise. I started using MUBI a couple of years ago after a client recommended it to me, and it’s great: only 30 films on the site at any given time, and each day a new film is added and the oldest one is removed. This means you can watch a new film every single day, and they’re all curated and handpicked by film critics and reviewers.
I tend to drop nearly all of my non-dev project files into Dropbox, because I don’t really want to keep much data actually on my machine (plus it makes setting up new machines much faster).
This is more of a service than it is software, but Priority Pass deserves a special mention. If you take more than (I would estimate) eight flights a year, you should probably get Priority Pass.
Basically, most airports have lounges that offer wifi, food, drink, showers, places to nap, and/or any combination of the above. Lounges are usually only available to business class travelers (and I never fly business) which makes sense—it’s a slightly more luxurious way of traveling.
But if you spend a lot of time in airports then it’s more a necessity than a luxury. In 2015 I visited 26 airports in a 60 day period, and at that frequency you really do start to need a little more stability than a 24 hour Starbucks can offer you. With Priority Pass, regardless of what travel class you are, you get access to over a thousand lounges worldwide just by showing the staff your card. I use this at least twice on every trip I make. I can grab some food, jump on the wifi, take a shower (I’ve actually only ever done this once—on the way back to the UK from New Zealand—but it made an enormous difference), have a drink, and regroup my thoughts and senses mid-journey, and all for no more than the yearly cost of the Priority Pass membership. It’s effectively all free, if you treat the membership as a separate expense.
Honestly, you should probably look into it.
There are a handful of other tools that I make a point of installing on day one of having a new machine:
My hardware needs are pretty simple: I’m an Apple user (though most certainly not a fan, of late…) who travels a lot, so lightweight is my key consideration.
I have a desk at Duke Studios, a co-working space in Leeds. I travel a lot for work, so having an actual office to ground me when I’m home is really important to me. Duke has a really diverse set of residents, from accountants to software engineers, copywriters to landscape architects. It’s also got Grub & Grog right there in the building, which is a treat. In the event that I’m working remotely—or I’m working on business and admin tasks—I’ll probably be at Duke.
I recently moved from a MacBook Air that I got in mid 2013 and opted for a more powerful MacBook Pro. I absolutely love the form factor of the Air, but its limited memory and storage—and lack of expansion—were reason enough to switch. I got a MacBook Pro around the beginning of February 2017.
I decided against the new Touch Bar version because of hearing lots of less-than-favourable reviews, plus after spending ~£2,000 on a new machine I’m loathe to spend half that amount again on new adaptors and cables. Instead, I got a top-spec previous-generation model:
I went from a 4GB Air to a 16GB pro in one move, and it’s been noticeable! It’s a really great machine, not too heavy, but I do miss the slimness of the Air. This is also my first retina machine and oooooh wow, it’s so nice!
Whenever I am in my office, I hook my machine up to a 27″ Thunderbolt Display that I picked up in 2013, when I first started working for myself. It’s a beautiful (if a little overpriced) bit of kit in and of itself, but I really notice the lack of retina nowadays. You can see pixels everywhere! I’m going to stick with it though—it’s too expensive to replace for such a superficial reason.
I also use the standard Magic Mouse and a wired Apple keyboard alongside it. The gestures on the mouse are very nice to work with, and I still really like having a numpad on my keyboard.
I’m really tempted by the Google Pixel, but I feel too invested in the Apple ecosystem to make such a drastic change. I currently use an iPhone 6 which—despite the handset itself being less than a year old—runs awfully slowly. I’m convinced that software updates are designed to slow down previous generation devices in order to encourage users to upgrade. It’s a tactic that works, because I’m already thinking of getting an iPhone 7 (it takes a number of seconds to switch between apps on my current phone). I’d love to get an iPhone 7 Plus just for the camera, but I really don’t want anything of that size.
I have a Nexus 5 which is use for performance profiling. Its continued prevalence coupled with its modest spec make it a great testing device.
I listen to a lot of music. I guess more accurately, I listen to music a lot. I have a number of different head/earphones, but my all-round favourites are my Shure SE425s: they’re in-ear, so nice and discrete; comfortable, so I can wear them all day; astounding quality, for what I need at least; very robust, so they travel well. If you’re looking for some good quality earphones then I would wholeheartedly recommend these.
I own and wear an Apple Watch, and I wish I didn’t. I feel like I wear it out of some weird Stockholm Syndrome kind of reason (I really like the daily calorie and move goals), so on it stays. It lacks any individuality, brings annoying notifications to yet another device, and needs charging once every 1.75 days. Honestly, I would not recommend one. If you want a smart watch for sports then there are probably much better and more purpose-built ones on the market.
I’m pretty tall (190cm) so have a bad tendency to slouch at chairs. When I started working for myself—and was in charge of what equipment I could use—I decided to treat myself to an Aeron chair. I bought it brand new, although I hear that refurbished models tend to be great quality.
I barely notice that it exists, which is half annoying considering how much I spent on it, but obviously great because it means it’s doing its job perfectly. The last thing you want is a chair that you notice you’re sat in.
If I’m appearing on a podcast or making a long or important Skype call, I’ll plug in a Yeti microphone. For the price it’s okay, but I think I’ll need a slightly better setup if I want to ever do anything more in-depth like screencasts etc.
As I mentioned previously, I travel a lot for work. I always used to check in a suitcase which I was totally fine with, but after meeting Jimmy from Minaal in New Zealand I’ve been using a Minaal bag for about a year. Now I travel everywhere with just hand luggage, and it made me realise just how awful checked luggage is.
Since using the Minaal travel has become a lot smoother—I don’t need to arrive at the airport as early, I don’t have to entrust my belongings to anyone else, I don’t run the risk of airlines losing my luggage (which has happened to me twice before).
The Minaal is designed specifically with frequent travelers in mind, and it shows. It has a well placed compartment for every occasion, and it holds so much. I did two weeks of travel with it and didn’t need to do any laundry or wear any item of clothing twice. The capacity is astounding!
I think that’s about everything. If there’s anything more specific you’d like to know about just drop me a line.
If you liked this, you’ll probably like Wes’, which is where I got the idea.
f.lux is still better than Night Shift. ↩
Hi there, I’m Harry Roberts. I am an award-winning Consultant Web Performance Engineer, designer, developer, writer, and speaker from the UK. I write, Tweet, speak, and share code about measuring and improving site-speed. You should hire me.
You can now find me on Mastodon.
I am available for hire to consult, advise, and develop with passionate product teams across the globe.
I specialise in large, product-based projects where performance, scalability, and maintainability are paramount.