Why I enjoy my commute

July 5th, 2026

My commute to work is one of the favourite parts of my day. I’ve mentioned it before, more often than I probably should, but in this post I try and explain why I enjoy it so much.

The journey

Otterbourne village and crossing the motorway

I start off walking through Otterbourne: past the pub, across Otterbourne Hill Green and past the weird mini-castle at Otterbourne Hill Reservoir (I still don’t really understand what that’s all about).

Read the rest of this entry »

I have a new job!

July 4th, 2026

In April, I wrote an outline of my career. That post is already out of date, because I have a new job to add to the list.

I’m joining Confluent as a Principal Software Engineer working on Confluent Platform for Apache Flink.

I won’t try and describe what “Confluent Platform for Flink” is here. Partly because I’m sure I’ll have plenty to say about it in coming months. Mostly because I’ve got a lot to learn and anything I say today will almost certainly be incomplete or inaccurate in ways I’ll find embarrassing once I know more. In the meantime, the product page or the docs site are the best places to go if you’re curious.

But that won’t stop me speculating about what this all means for me.

Read the rest of this entry »

iTunes extension for Scratch

June 9th, 2026

In this post, I want to share a new Scratch extension I made today.

screenshot

It uses the iTunes Search API to let you search for songs, and play 30 second previews of them, in your Scratch projects.

The blocks are simple, and hopefully self-explanatory, but here is a short demo of them in action if it’s not obvious.

I’ve added this extension to the version of Scratch I host for Machine Learning for Kids, so you’ll need to go there to try it out. (To access the extensions library, click on the extensions button in the bottom left.)

Read the rest of this entry »

Presenting at Current / Kafka Summit

May 21st, 2026

A few of us at Current this week were talking about how Current (formerly “Kafka Summit”) has changed over the years, and it got me remembering the bits I’ve contributed.

I dug through some old posts to find seven Current / Kafka Summit talks I’ve done… it makes for an eclectic set when I see it in one list!

Embedding Tiny Language Models in Flink SQL

May 20th, 2026

I gave a talk at Current yesterday about how to embed a tiny language model inside your Flink SQL pipeline.

I used a fun mix of demos to show what I think are the main approaches available for using generative AI with Kafka events from a Flink SQL job. Some demos were definitely more sensible than others!

These are the slides I used, and what I’d planned to say.

#

In this session, I’ll be talking about your options for running language models for Flink SQL jobs.

I’ll cover:

  • your options for where you run them, in relation to Flink
  • what sorts of choices you have for the models you run
  • how to use them – the sorts of prompts and settings we’d want for Flink
  • how to keep an eye on it that it’s working well
  • and finally, some thoughts on when it’s a good idea to do any of this

Read the rest of this entry »

Instrumenting a Kafka Connect connector with metrics

May 2nd, 2026

Metrics can help provide operational insight over Kafka Connect connectors, informing users of how to better configure them. With simple updates, a Kafka Connect connector can be instrumented to make this possible by emitting useful metrics.

A couple years ago, I created a simple skeleton Connect connector project to help developers at a hackathon create their first Kafka connector.

I’ve updated the source connector from that sample to emit metrics. In this post, I’ll walk through what I did, as an example for how to add metrics to your own Kafka connector.

Read the rest of this entry »

How to create a Scratch extension

April 27th, 2026

A few years ago, I ran a workshop about how to create custom Scratch blocks.

I made a template repository, based on the Scratch Team repos, but with a skeleton extension and some extra scripts and automation to handle building and publishing it. I included step-by-step instructions for building different types of Scratch extensions, including Scratch blocks based on web APIs, and Scratch blocks based on JavaScript modules from npm.

Read the rest of this entry »

22 years at IBM

April 26th, 2026

Looking back at my career so far, and what this could mean for what comes next…

Read the rest of this entry »