Carl Hartshorn

Core Engineer at [Streeva](
Creator of [Listen Later](

Introducing Listen Later Tuesday 12/09/2023

Heard about an artist you want to listen to? Or a podcast that has peaked your interest? Listen Later allows you to curate a list of albums, artists, episodes, podcasts and songs to listen to later with Spotify.

After unsuccessfully trying to maintain a list to this effect using playlists in Spotify, and finding a number of Spotify Community forum threads with people wanting the same functionality, I decided to build a web application to solve this problem.

For more information, see the post about the project on LinkedIn.

Listen Later screenshot

Spirited Machine is Born Wednesday 02/09/2020

Starting in September 2020, I'll be transitioning to freelance software development work through my own business, Spirited Machine!

I'll be bringing the experience and knowledge gained during over five years of varied commercial software development at companies inlcuding a bespoke software development house, a household name online estate agent and progressive tech startups to offer best practice software engineering services to businesses of all sizes.

To see all of my past commercial experience, please see my LinkedIn profile.

To find out more about what I'll be offering in my freelance endeavours, or to get in touch regarding software development needs, please visit the Spirited Machine website.

Spirited Machine banner

Azure DevOps Pipeline Monitoring Monday 09/12/2019

I’ve been using Azure DevOps Pipelines (formerly Builds & Releases) for continuous integration and continuous deployment for around eighteen months. Overall, I’ve found it really good to work with (especially given that it’s freely available for open source projects - see Azure DevOps Services pricing).

One Pipelines feature that we found ourselves wanting at GivePenny was the ability to see which pipelines are broken at a glance.

Initially, we used Dashboards in Azure DevOps to achieve this. The downside to this approach was that new panels had to be added to the dashboard for each new microservice we created.

To solve this issue, I developed a Pipeline Monitoring solution using Blazor WebAssembly and the Azure DevOps REST API.

The Pipeline Monitoring solution is a simple SPA that accepts an Azure DevOps Organisation, Project and PAT token, and displays (by default) the broken and in progress pipelines.

Although Blazor WebAssembly is not yet production ready, we've been using the Pipeline Monitoring solution internally at GivePenny for a number of months.

The Pipeline Monitoring site is now open source on GitHub, and is being continually deployed to Google Firebase (hosted as a static site) using an Azure DevOps Pipeline.

Screenshot of the Pipeline Monitoring application

Purplebricks Innovation Hackathon Tuesday 19/06/2018

In February of this year Purplebricks held its first hackathon.

The hackathon's theme was innovation, and it ran over the course of twelve hours, 9:00 to 21:00.

My team's submission was a property search chat bot, built using Microsoft's Azure Bot Service and the LUIS (Language Understanding Intelligent Service) cognitive service for natural language understanding. The bot interfaced with the existing Purplebricks Property Search API, gleaming filters from the user's input. For example the phrase "I'm looking to rent a flat in Solihull" would search for a property of type "flat", in the location "Solihull" and show only properties to let.

The day was a really interesting view into working in a different way and collaborating in a very fast paced environment. When the day wrapped up we felt a real sense of achievement about what we'd managed to build in such a short amount of time, and it was great to see each of the teams' submissions.

For more information on the implementation of the chat bot, please see my blog post on our submission.

Screenshot of the chat bot in action