Posts

Pieces I’ve written.

Postel's Law for People

A bridge

I was having an after-work chat with Simon a while ago. We were discussing how we can cultivate a more resilient culture at work, specifically enhancing the capacity of individuals to constructively handle feedback.

He mentioned that he’d been reading Thanks for the Feedback which emphasises that, contrary to popular advice, it’s better to focus on helping people get better at receiving feedback rather than giving it.

This reminded me of a design principle in software engineering called the “Robustness principle” or “Postel’s law”. This principle guides how software systems should be designed to communicate with each other.

It’s often summarised as: “Be conservative in what you send, be liberal in what you accept”.

It felt like when it came to feedback and people working better together we were talking about the same thing, i.e. Postel’s law for people.

This makes me wonder what other software design principles might be useful when applied to people.

Internet Trawling

I spend too much time reading online.

I tend to trawl content from a variety of sources, save the shiny ones in Instapaper, and read them later.

The majority of the articles I read are sourced from RSS feeds in Feedbin. I’ve organized these feeds into three categories: ‘full read’, ‘skimmable’, and ‘skippable’. This system means that if I ever feel overwhelmed by the volume of content, I can quickly mark a large number of articles as read and move on with life.

I like to complement these feeds with articles from elsewhere. I used to route specific Twitter accounts into Feedbin for this but that option is gone since the Twitter API ‘asplosion1.

Around the same time as that feature disappeared I started using Artifact. It’s from the founders of Instagram and the early development cycle has been impressive. At its core is a machine curated personalised news feed2. The recommendation engine feels like it still has room for improvement, I’d love to be presented with more “surprising” articles, but it still manages to throw the odd interesting articles into the mix. Using it feels like panning for gold.


  1. Mastodon has taken up the Twitter link mantle somewhat. ↩︎

  2. I don’t use the social features though it’s clear that’s where its focus is heading. ↩︎

Photoshop Generative Fill

The latest version of Photoshop Beta now includes a feature called generative fill.

I can imagine it’s easy to compromise the authenticity in your photography if you overuse these kinds of tools. With that said, and I know it’s potentially a slippery slide, there are situations where they can be incredibly useful.

For instance, I sometimes want to adjust a crop and need to fill in some areas to maintain the balance of the composition, and my Photoshop pixel-surfing chops aren’t up to the task.

I had a crack at using generative fill on a photo I recently took that I wished had more foreground.

The photo as shot with the canvas expanded to make room for more foreground.

The photo with extra foreground filled in by the default generative fill prompt.

The results look usable.

I also tried a prompt that removed the shadow on the left but the results of that were less natural.

Experimenting with various prompts and browsing their outcomes is far more enjoyable than swearing at the healing and clone brush tools 😂.

Long Live the Work Journal

A window onto green grass

Keep a journal for work, champions.

It’s pretty easy to get started—just create a text file.

Throw in a new heading each day and write down whatever you did—a single line for each task is usually enough. I put the newer dates at the top so it’s less scrolling to get to the most recent content. Over time you end up with your own little private reverse-chronological blog-in-a-file.

Each day, dump in commands you’ve run; links to documents you’ve created, reviewed, or read; tasks you want to get done; or goals you want to achieve.

You’re building a little outboard brain where your work history is just a short grep away.

When that Friday afternoon ennui kicks in, and I’m trying to work out what I’ve contributed, I go back over my work journal for the week.

I’m the rigorous1 type, so each Friday, I summarise my achievements and impediments of the week in a separate note.

When it’s performance review time, I run over these weekly notes and pull together the story for the year.

My journal used to be a bunch of text files saved to a folder in Dropbox. That’s honestly all you need. Use Markdown or Org mode or whatever, and opening a window into what you’ve done is a ⌘f keystroke away.

NotePlan as a work journal

I used text files for years, and then, about a year ago, I switched to NotePlan.

I switched to it mainly because it has built-in daily and weekly notes2, search, sync, an iOS app, and stores everything in plain Markdown files.

It integrates with your calendar (not that I use that feature much) and includes tasks and tagging in the style of Bullet Journaling.

I’m more accustomed to the GTD productivity approach but have found having tasks alongside my journal to be worth tolerating some of the rougher edges on the task management side3.

Eyes on the prize

Knowing that I have a home for all the minutiae of work leaves me more space to dedicate my brain to what’s actually important. 🫡


  1. Ahem obsessive, perhaps? ↩︎

  2. It also has quarterly and yearly notes, though I tend only to use quarterly notes to record what I aim to achieve that quarter. ↩︎

  3. I have knocked together a few Alfred workflows to help me capture tasks into NotePlan from other apps. ↩︎

Organisational Change and Coaching Better Performance

Waves of water

It’s often necessary to roll out organisational changes in a business, e.g. new reporting structures, goal setting frameworks, or planning processes. Each change introduced requires time for people to adapt and normalise.

When businesses introduce a series of changes in quick succession, people deal with them like a swimmer facing a tight set of waves. As they adjust to the wake of one change, they are immediately destabilised by the onset of another.

This situation can make it difficult for people to build their capability and improve performance. Leaders spend most of their coaching effort on dealing with the impact of the changes rather than improving an individual’s performance.

If you find managers in your team are spending the majority of their time coaching people through change it’s likely a sign that you are trading off rolling out change over coaching performance.

Daily Journal Time Machine

I’ve journaled in various forms over the years 1.

About ten years ago, I migrated my journaling to the Day One app.

I love how Day One is available on my Mac and my iPhone. I post text, photos, audio, links, or quotes as they pop into my head. I tag posts and even store posts into separately themed journals.

A list of my journals in Day One

A list of my journals in Day One.

In the last six months, I’ve added reviewing my journal to my morning ritual.

Each morning, before I knock out the day’s Wordle, I review the posts “on this day” in Day One.

It’s been a delight.

On some days, I have posts dating back ten years. It’s like jumping into a time machine to a previous life. Reading back over challenges at work, holidays we’ve taken, or photos of my family always brings a smile to my dial.

Once a month, I choose a random tag and review the journal posts under that. It’s illuminating to see the evolution of my mood or feelings on a particular topic over time.

Regularly reviewing my posts has made writing posts feel more valuable too.

So yeah, journaling is like a tricked-out DeLorean.


  1. First on paper, then via text or Org mode files stored on Dropbox. ↩︎

Creating Clarity in Complex Conversations

Figures in a spin

Product development is a team sport mostly carried out through meetings and conversations.

Two practical things you can try to help create clarity and reduce chaos in particularly complex conversations:

  1. Consolidate progress with a series of summaries.
  2. Crystallise outcomes in writing.

These might seem obvious, but they don’t happen as often as I’d hoped.

Consolidate progress with a series of summaries

Do you find yourself in meetings with multiple people discussing complex topics?

Does a series of tangents and related issues emerge as the conversation progresses?

In the end, are you unsure of where things are at?

Are you confident that you understand the situation but are uncertain if it’s the same for others?

Taking complex, meandering conversations and providing clear, structured summaries throughout is incredibly valuable 1.

I think of each summary as incrementally locking in consensus or taking a collective step up the ladder of inference, as described in Crucial Conversations.

Sometimes the state of play seems obvious, and therefore it feels unnecessary to summarise. I suggest pushing through this feeling and doing it anyway to ensure alignment and avoid pluralistic ignorance.

Crystallise outcomes in writing

As soon as you leave the conversation, you are immediately misaligned again 2.

You can reduce this misalignment by sharing a written conversation summary including decisions and actions.

Given the volume of conversations leaders tend to be in, capturing the outcomes becomes essential for rebooting context later or remembering which decisions were made and why.


  1. This can be as simple as listing the facts established to date, assumptions, trade-offs available, or agreed actions. ↩︎

  2. It’s ok. This is normal. Read more on autonomy and alignment from Jean-Michel Lemieux↩︎

Come Back to Me When You've Got a Trade-Off to Discuss

It’s not particularly useful debating the value of anything in isolation.

Considering programming languages, tools, processes, or product decisions on their own is a mostly philosophical exercise.

Things start to have meaning when we assess them against other available options.

That’s where the rubber hits the road, and things get spicy, friends.

Blog Rebooted

Welcome to my rebooted blog. 🎉

I had this domain hanging around and liked it better than my old dance.computer.dance domain.

I’ve pulled the posts and links here and the old domain should be redirecting across properly.

I’ve added tags to track the topics of my posts and links.

I’m using Hugo to build the site and Netlify for hosting it. I’ll write a post on how I’ve set up the assets and Hugo build.

So, now I’ve revamped my blog and my photography portfolio it’s time to get shooting and writing 💪

Happy computer

(I will miss my old blog's happy computer logo.)

Twenty-twenty

Wake up, go to the kitchen. Open the fridge: Zuul.

Close the fridge, go to my desk. Open Slack: Zuul.

Close Slack. Open a spreadsheet: Zuul.

Close the spreadsheet. Go back to bed.

Hyper Keys and Mouse Buttons With Karabiner

I’ve got a hankering for keyboard shortcuts.

I’m all about pressing a key without having to worry about which application I’m in and my computer doing something useful.

This noble pursuit has taught me one thing: there’s never enough keys™.

Good old Vim has demonstrated the value of a trusty leader key in the war to get more keys. So, I undertook a holy mission to find the mythical macOS hyper key, and along the way found the deep well of keyboard customisation that is Karabiner-Elements.

Hyper key

I’ve set up Karabiner-Elements so that if I combine the backslash key with other keys, it acts as the hyper key 1.

I use this hyper key as a prefix to bind global shortcuts without having to crush my fingers, and soul, into a ball.

Here’s a selection of the shortcuts I keep behind this hyper key prefix:

  • \+t brings my time tracking app into focus.
  • \+s locks my screen.
  • A bunch of shortcuts move windows around via Moom.
  • A couple of shortcuts switch my audio output between my headphones and speakers via an Alfred workflow.

Mouse buttons

macOS doesn’t natively recognise the extra buttons on my new mouse which sucks because: there’s never enough keys™.

So, I was chuffed to find that Karabiner recognises these extra mouse buttons and can bind them to key sequences.

Here’s a look at my bindings:

My Karabiner-Elements preference

I miss the sideways scrolling of the Magic Mouse, but I’ve set up Karabiner so that if I hold down my scroll wheel button, I can scroll left and right. It works reasonably well and means I don’t need to reach for shift while spinning the scroll wheel to side-scroll.

I map button 4 of my mouse to play and pause my music. The media keys on my keyboard are a chord away, but usually, it’s easier to press a single button instead.

I map button 5 to a shortcut2 assigned to the Meet Mute Chrome extension. This shortcut toggles mute on my current running Google Meet meeting, which is killer.

The config

So there you go. Maybe you’ll find something useful in my Karabiner-Elements config file that you can steal.

And may you never run out of keys.


  1. The hyper key on the Mac is a combination of Ctrl+Command+Option+Shift which is the equivalent of a dragon costume with four people in it, but hey, it does the job. ↩︎

  2. Command+shift+d because the extension doesn’t recognise the hyper key chord for some reason. ↩︎

Lonely underpants

Hello, underpants.

I see you laid there, all alone next to the bus stop. Your wobbly white leg holes frowning beneath your powder blue waistband. How did this happen? Who abandoned you?

Were they the absent-minded type? Did they drop you on their way home from swimming? Perhaps you’re a casualty of a botched trip to the laundromat. It’s ok, you can tell me.

I have to be honest, for a minute there, I was worried you were a victim of something more…biological. It’s what everyone expects when they see undies in your situation. But no, by the looks of it, the worst you’ve seen is perhaps a morning of light decorating followed by a brisk walk to the shops for a celebratory flat white. If it were dysentery, there’d be no mystery.

Maybe it was a bad break up. Maybe—and I’m sorry to say this—you made a pork chop of yourself one too many times. Couldn’t resist sleazing over the top of waistbands at parties, maybe? A fan of an ill-timed slide down butt crack way were we? Look, I get it, you’ve got a hard job. Why shouldn’t you be allowed to let your hair down every once in a while? Some bosses are tough that way. Imagine being Jeff Bezos’s boxers.

Maybe, just maybe, you’re more like a cocoon—discarded in a gleaming moment of triumph. I can see it—your owner’s eyes sparkling as they stand from the bus stop bench, Instagram in hand, resolute in their purchase of new sweat-wicking compression shorts. That is the missing piece you see; they’re going to hit the gym all the time now. They lock their jaw and cast you backwards, over their shoulder as they step onto the bus and into a new life—slow motion flames and explosions blooming behind them. Like when Jerry Maguire walked out of the office with his goldfish and Renée Zellweger.

What can I say, friend? Social media is coming for us all.