All Posts

The Friction Matrix: Visualising the Cost of Tech Debt

This post outlines a practical, data-driven method for understanding how technical debt impacts upcoming deliverables. It helps teams and their stakeholders quantify where debt is creating the most friction so they can prioritise work to tackle it effectively.

Analysing Subtitles with Natural Language Processing

A write-up of how we used Natural Language Processing at ITV to analyse how different topics are represented in our content through subtitles.

Link to article: https://medium.com/itv-technology/analysing-subtitles-with-natural-language-processing-4969071b9839

Building A Smarter Business With Event-Driven Architecture

Write-up of how we’ve used event-driven architecture at ITV to enable a data-driven approach to the content supply chain. By rearchitecting an existing message-driven, microservice-based system, we were able to introduce data and analytics capabilities without impacting feature development.

Decision-Making in Autonomous Teams

One of the most difficult aspects of a leader’s role is striking the right balance between giving direction and encouraging teams to make decisions independently. While experience may suggest that a particular approach is likely to be the most effective, it’s unlikely to be successful unless the team commits to it. There’s also a chance that better solutions exist, and given the right environment, teams will often discover these for themselves. Building that environment and providing their teams with just enough direction is where a leader really adds value.

Interactive Kotlin with kscript and fswatch

Experimenting with snippets of code and getting rapid feedback is a good way to get up to speed with a new language or library. I’ve been using Kotlin and Λrrow at work this week, so have been looking for tools that help achieve this workflow.

Worksheets in IntelliJ provide some of this functionality, but personally I prefer the immediacy of a text editor and the command line for this kind of thing. It turns out that kscript adds rich functionality to Kotlin scripts (e.g. importing code from other files, jcenter artifacts, etc.), and by combining this with the fswatch tool, we can approximate the basic features of a worksheet without the need to spin up an entire project or IDE.

Functional Design Patterns in Scala: 3. Monads

Learning (and subsequently trying to explain) monads has become something of a rite of passage in functional programming. Burrito analogies aside, the most helpful description I have come across is given by Noel Welsh and Dave Gurnell in Scala with Cats:

“A monad is a mechanism for sequencing computations.”