The Empathetic Engineer

You've probably seen a classic presentation on code quality. Do it like this, not like that. I'll admit that I was one of those overzealous young engineers that thought I'd stumbled upon the secrets to beautiful code and wanted to share them with the world in a tech talk. I'm…

A Simpler Phabricator Stacked Diff Workflow

TLDR: Squash commits. Branch from branches. Diff against branches. Rebase changes from bottom up, land from bottom up. In this article I'd like to address one of the things that I see people struggling with quite often: how to effectively work on multiple dependent git branches when using Phabricator. Uber…

Where golang got packages wrong

Preface I recently watched a fantastic talk by Rich Hickley. On the face of it, it's about Clojure's spec package, but the underlying principles immediately hit me as applicable to both language ecosystems that I've been working with in the last few years (mainly JavaScript, and now Go). Working with…

Commitment and Consistency

I recently made a commitment to share something new with my team at work - once a week - for the 6 weeks that were left leading up to Christmas. Whilst not all of them are applicable outside of the team, I thought that I may as well cross-post some…

Bold Predictions for the Short-Term Future

New Years Eve is, without fail, the busiest time of the year for Uber. That means that I'll be spending all of my day (and all of the night and into late tomorrow morning UTC) monitoring the systems that my team and I are responsible for. Whilst creating dashboards for…

Why I wrote a WhatsApp bot

In 2011, when I entered into the final year of my undergraduate degree, procrastination was the norm amongst my peers and I. I doubt that this is any different today, or even that it was different 30 years ago, but with the advent of smartphones and social networks becoming increasingly…

Last week I bought a piano

Last week I bought a piano. In the 8 or so hours of time that I have invested into it so far I have already come to realise that there are a lot of parallels that can be drawn between programming and music. For me, music always something consumed and…