One of my favourite things to do, is to obsess over the minute details of a thing until it is absolutely perfect. Take my keychain: I have spent years trying different keychains, key organisers, to find the one that fits my day best. My keys are organised in the order that I use them in the day. The keys I use when it's dark are the ones that are easiest to access, and then they're sorted by chronology and frequency.

I know what you're thinking; this is the mind of a person who is out of problems to solve, and you're almost right - some problems really annoy me and when I factor in my own neuroses, it makes things that are very simple to some people, very complex for me. For example, I carry my bike lock key on my keyring. I have used my bike lock less than ten times in the last year, but I still carry the key because it's enough for me to remember to bring the lock without remembering the key as well. I realise this is ludicrous, but that's just how I work.

There are many categories to this list. I have the capacity to obsess over gear in any genre. I am also exceptionally fickle - gear that matters intensely to me today could be almost completely irrelevant to me next week. I welcome changes with open arms, but if they don't improve my life in some notable way, I will dump them so fast.



My current obsession. How to improve productivity; how to derive joy from my day.

Out of all the things I do, the single-most-significant continuous thing I do whilst awake, is work. I love my job, and if you think I have capacity to fuss over my keychain, then buckle up because I have spent decades honing this!

The 16", 2019 MacBook Pro

This thing is a beast. I spent the first week using this with my jaw on the floor. It rips through anything I throw at it. It has a keyboard that doesn't make me want to rip my eyes out. Last year, I said that the iPad Pro was the best computer I've ever used. That accolade has been passed to the 16", 2019 MacBook Pro.

For the last ten years, my focus has been minimalism and portability. If I couldn't put it in my bag and work from some remote location (I have never done this) then I wasn't interested. Then, I entered the world of mechanical keyboards, and now I am entrenched in extreme desk maximalism. One year ago, my current laptop was the only tool I used to do my job. Now, that couldn't be further from the truth.

LG Ultrafine 4K

This monitor is a dream, and almost (it doesn't output 96W so I need to supplement charging) a perfect partner for the 16" MacBook Pro. The only issue I have with it is I need to plug my laptop into it, and make sure everything works before plugging my iPad in, otherwise it'll try to be the external display for my iPad. I don't know why, but it doesn't matter now.

Logitech MX Ergo

Between June 2019 and January 2020 I suffered from a very unpleasant RSI which rendered my right arm borderline useless for most task. It was incredibly uncomfortable and inconvenient, but I'm finally returning to normal. My daily job became anything from mildly uncomfortable to persistent unbearable pain, and I annoyed everyone who came near enough to hear me complain. One thing that I think really helped me was this mouse. It's a trackball, which means that the only thing that moves to operate it is my thumb. This took a bit to get used to, but I became incredibly accurate and quick with it. The only downside is that it requires regular maintenance, otherwise you'll get gunk in the ball that makes it just mildly unpleasant to use. But cleaning it is quite a therapeutic ceremony and only needs doing every couple of weeks so it's not a huge drama. I just set a reminder.

Logitech MX Master 3

Now that my arm is on the mend, I've switched to a normal mouse. It's been a long time since I used a pointer that wasn't built into my computer, but this thing is ridiculous. It has so many features. Like every reasonable adult, I read the word "gestures", and I roll my eyes. But, having tried some, this is the future. It comes with a dongle, but it's not USB type C so I threw it in the bin immediately (I didn't, it's in a box somewhere, but I might as well have because USB type C is the only USB). The bluetooth connection is stable and smooth, and it's comfortable as hell. Maximalism is going very well. I have two mice (mouses?) on my desk, and I switch between them depending on my mood. I have a mouse mood. What has happened?!

Kingly Keys RoPro

Just in case you weren't sure, a computer keyboard can have sentimental value. This is the only keyboard I will never sell. It will always be a memento of reconnecting with a friend I'd lost touch with. It uses lubed Cherry MX Black switches and wears DSA Scientific, and it is glorious. Even though I love it, my current keyboard of choice is:


This keyboard has, in my opinion, the perfect layout. It is a 40% layout, which means that it has no number row, and everything that isn't a letter is accessed by a modifier layer. It sounds like an absolute nightmare but it really isn't. Once you learn your layers and get used to using them, it's a joy to type on. You don't have to move your hands at all whilst typing, which is a big plus when you have an RSI - everything is reachable from your homerow position. It is currently wearing Kailh Box Blacks (which I don't like - they sound nice, but they require too much force) and SA Vilebloom (which is still my favourite keycap set because it's delightful).



No matter how appealing some other text editors are, I can't deviate from Vim. My entire setup for work is a house of cards; if I remove one piece of it, I have to start over. Vim is one of the most flexible, stable pieces of software I've ever used. I couldn't imagine using anything else, even if I were to try something new.

tmux and tmuxinator

I use tmux as a terminal window manager. It works nicely with Vim so that I have a main editor window for all my projects which has a Vim pane, then 3-4 smaller panes for running things like Docker, Rails, and firing arbitrary commands for things like unit testing.

Most of my projects have some sort of variance, so I use tmuxinator to configure each one. Tmux sessions don't persist through restarts, so it's very useful for me to be able to configure each project and return to it easily if I need to restart. Tmuxinator uses YML to let me configure things like pane sizes and layouts, and initial commands.


Relatively new, but essential addition to my toolchain. As I grow longer in the tooth, the versions of software I used to make things becomes more fragmented, and it's important to be able to rely on returning to those versions if I need to make changes to older projects. Docker's sandboxed approach means I can have as many different versions of dependencies as I need without polluting my main OS. Newer projects are completely containerized (although running MacOS presents its own challenges here) which massively improves deployment and version compatibility. It took me a while to get my head around Docker, but now that I'm comfortable with it I wouldn't be without it.


Gitlab started out as a pretty shameless Github clone, but came along at a time when Github's pricing was prohibitive if you wanted uncapped private git repos for teams. They've since added a load of really nice features; including hosted docker image registry, and continuous integration and deployment.