<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://garethwestern.com/</id><title>Gareth Western</title><subtitle>Gareth Western's blog — notes on data platforms, cloud and CI/CD.</subtitle> <updated>2026-08-23T22:22:00+02:00</updated> <author> <name>Gareth Western</name> <uri>https://garethwestern.com/</uri> </author><link rel="self" type="application/atom+xml" href="https://garethwestern.com/feed.xml"/><link rel="alternate" type="text/html" hreflang="en-GB" href="https://garethwestern.com/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Gareth Western </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Jenkins MQTT Notification Plugin: Release 122.vf67b_9da_d6f70</title><link href="https://garethwestern.com/posts/mqtt-notification-plugin-122-released/" rel="alternate" type="text/html" title="Jenkins MQTT Notification Plugin: Release 122.vf67b_9da_d6f70" /><published>2026-08-23T22:12:00+02:00</published> <updated>2026-08-23T22:12:00+02:00</updated> <id>https://garethwestern.com/posts/mqtt-notification-plugin-122-released/</id> <content type="text/html" src="https://garethwestern.com/posts/mqtt-notification-plugin-122-released/" /> <author> <name>Gareth Western</name> </author> <category term="jenkins" /> <summary>Back in 2020, when I wrote about releasing v1.8 of the MQTT Notification Plugin for Jenkins, I signed off with: A short while later someone created an issue for an actual feature request, so hopefully it won’t be too long until v1.9 is released! Well, true to the definition of maintaining a side project at a “leisurely pace”, nearly six years have passed. And if you were expecting a simpl...</summary> </entry> <entry><title>Analysing three years of Norwegian grocery receipts with Databricks</title><link href="https://garethwestern.com/posts/norwegian-grocery-receipts/" rel="alternate" type="text/html" title="Analysing three years of Norwegian grocery receipts with Databricks" /><published>2026-07-17T07:59:57+02:00</published> <updated>2026-07-17T07:59:57+02:00</updated> <id>https://garethwestern.com/posts/norwegian-grocery-receipts/</id> <content type="text/html" src="https://garethwestern.com/posts/norwegian-grocery-receipts/" /> <author> <name>Gareth Western</name> </author> <category term="databricks" /> <summary>Now that the World Cup is over (it did not come home), here’s one last side project before I unplug and vanish for a few weeks. If you live in Norway, you’ll know that the grocery market is essentially a three-horse race between Norgesgruppen (Meny, Joker, and so on), REMA 1000, and Coop. Naturally, each has its own loyalty scheme and app, diligently hoarding your shopping data for their own “...</summary> </entry> <entry><title>What painting a wall has in common with the power grid</title><link href="https://garethwestern.com/posts/paint-and-grid-losses/" rel="alternate" type="text/html" title="What painting a wall has in common with the power grid" /><published>2026-07-07T08:38:01+02:00</published> <updated>2026-07-07T08:38:01+02:00</updated> <id>https://garethwestern.com/posts/paint-and-grid-losses/</id> <content type="text/html" src="https://garethwestern.com/posts/paint-and-grid-losses/" /> <author> <name>Gareth Western</name> </author> <category term="statnett" /> <summary>Let’s take a break from the World Cup for a minute to talk about watching paint dry. What do painting a wall and balancing the Norwegian electricity grid have in common? As I got to the bottom of yet another bucket of paint last weekend, my thoughts drifted back to my work with Statnett. No matter how careful you are, some of the paint never makes it onto the wall. It ends up stuck in the b...</summary> </entry> <entry><title>Rebuilding the PenguinPool commentary as an MLflow agent</title><link href="https://garethwestern.com/posts/penguinpool-mlflow-agent/" rel="alternate" type="text/html" title="Rebuilding the PenguinPool commentary as an MLflow agent" /><published>2026-07-02T01:22:21+02:00</published> <updated>2026-07-02T01:22:21+02:00</updated> <id>https://garethwestern.com/posts/penguinpool-mlflow-agent/</id> <content type="text/html" src="https://garethwestern.com/posts/penguinpool-mlflow-agent/" /> <author> <name>Gareth Western</name> </author> <category term="databricks" /> <summary>A few weeks ago I shared how I moved the Bouvet PenguinPool from Erik Stubø’s legendary Excel sheets to a fully automated commentary system on Databricks. The jobs run, the Slack messages land, the penguin fans are happy. But a nagging thought lingered: the automation was a notebook. A very good notebook, but still a script. No versioning, no API contract, no easy way to call it from anywhere ...</summary> </entry> <entry><title>Automating World Cup commentary with Databricks Genie and Model Serving</title><link href="https://garethwestern.com/posts/penguinpool-commentary-analyst/" rel="alternate" type="text/html" title="Automating World Cup commentary with Databricks Genie and Model Serving" /><published>2026-06-13T21:45:44+02:00</published> <updated>2026-06-13T21:45:44+02:00</updated> <id>https://garethwestern.com/posts/penguinpool-commentary-analyst/</id> <content type="text/html" src="https://garethwestern.com/posts/penguinpool-commentary-analyst/" /> <author> <name>Gareth Western</name> </author> <category term="databricks" /> <summary>Erik Stubø was not only a very capable CFO at Bouvet, he was also an eager football fan who faithfully took charge of running an Excel-based prediction pool for every European and World Cup tournament. The commentary that came with it was half the fun: In my previous post I shared how we’ve moved past the Excel-spreadsheet days-of-yore and transitioned to Databricks for a modern approach to ...</summary> </entry> </feed>
