Dave Martin Programming Blog

My blog, where I write about programming


A unique award winning interactive animation


A web app to plan and acheive goals

JSON Viewer

A ScalaJS app for displaying JSON


A mobile app for booking stylists


A web app that turns your phone into a console display

Open Source

I maintain and contribute towards open source libraries


Front End


Back End




Where I've Worked

Funding Circle - Clojure Engineer

January 2018 - present

Funding Circle is a P2P loans company. I have been here since January 2018, working primarily on event-driven Clojure microservices leveraging Kafka. Architecture design is critical for this, and we heavily use DDD, event sourcing, and CQRS to guide us in this.

I have worked on multiple projects, across both the borrower and investor sides of the business. Most recently, I have been working on FC's new automated platform, designed to make a decision on loan applications within 20 seconds.

While at Funding Circle I have also worked on Jackdaw, our open-source Clojure library for interacting with Kafka. I also created a Clojure DSL for Kafka Streams called Willa, which I actively maintain.

UVD - Senior Web Developer

September 2016 - December 2017

I worked on both the front end and back end of a variety of web applications, for multiple different clients.

One of the larger projects I worked on was the Limpid Markets trading platform. The front end used AngularJS, React and Redux. As well as developing new features and fixing bugs, I also provided direction on the overall architecture of the application. I also re-wrote the front end build system, and wrote a blog post about it

I was the lead developer on a project for an IOT street lights company. They were in the process of writing version 3 of their flagship product, and UVD was asked to develop the front end. I wrote the application in TypeScript and Angular 2 (with NgRx), making heavy use of RxJS and Ramda. I also wrote a blog post about our testing strategy on this project.

As part of a hackathon, I worked on a photo sharing app written in Elm and Elixir. There is a blog post about the hackathon here: https://www.uvd.co.uk/blog/hack-week-things-elixir-phoenix-elm-mash.

I organised a Clojure workshop for everyone at UVD in March 2017. This involved teaching everyone the basics of Clojure, and working through some exercises. You can read more about it here: https://www.uvd.co.uk/blog/clojure-workshop.

Potato London - Front End Web Developer

November 2015 - September 2016

At Potato, I worked on web applications and marketing sites for clients such as Google and Nest. Most of these web apps were deployed on Google App Engine.

I also worked on an internal web app which used React and Redux, with tests written in Mocha, Chai and Sinon.

Sporting Solutions - Software Developer

April 2015 - November 2015

I worked on C# applications responsible for receiving sporting event feeds from external providers, and passing this feed on to other applications via a RabbitMQ message queue. Ingesting these event feeds involved using multiple different techniques, such as HTTP polling, listening to TCP sockets, and subscribing to IBM WebSphere message queues. I also worked on an internal C# MVC website for managing the feed data, an ASP.NET REST API, and a number of smaller C# applications.

One major project that I was solely responsible for was re-writing our internal feed mangement website to an AngularJS SPA. I built this using ES6, Babel, Angular 1.4, Angular Material, LESS and Gulp.

One other project I worked on was migrating all our logging from an unmaintained framework to Graylog. This involved large refactorings of multiple codebases, as well as running Graylog on our infrastructure.

I also did a large amount of work on our automated tests and CI systems. I was put in charge of improving a suite of acceptance tests written in Specflow, and I also set up our TeamCity CI to run these tests.

While I was at Sporting Solutions, I also created and maintained the ObjectDiffer and GraylogApiHelpers open source projects.

Blinkbox - Web Developer

May 2014 - April 2015

My role centred around creating web applications for internal use. These included applications for asset management, video file ingestion, and user management. The main application I worked on was an AngularJS SPA, with an ASP.NET Web API 2 backend. I worked with tools such as Grunt, Bower and NPM, as well as testing frameworks like Karma and Protractor.

I also participated in a company hackathon as a team lead. My team built completely new search functionality in 2 days, and were awarded 2nd place.

Globecast - Full-Stack Web Developer

April 2020 - April 2020

At Globecast, I worked on a variety of projects, using technologies such as: MVC 5, Entity Framework, AngularJS, SignalR, Kendo UI, LESS and D3.

I designed and built multiple web applications to perform tasks such as comparing programme schedules, and performing QC on video files.

I also worked on an existing projects. One example is a system that ingested video files, processed them, and sent them to a 3rd party scheduling program. This system was composed of multiple C# console applications.

My role also included some DevOps work, such as maintaining running applications, and performing video file migrations.

CPL Software - C# Software Developer

December 2011 - November 2013

My role at CPL Software was primarily developing a C# WinForms app for property factors. This application has a variety of functions, including: producing invoices, calculating taxes, sending out letters and emails, and importing bank transactions. My role also included:

  • 1st, 2nd and 3rd line support.
  • Writing SQL stored procedures, performing data migrations and fixes, and general database maintenance.
  • Frequent use of Entity Framework and LINQ, leveraging LINQKit.
  • Maintaining and updating a REST API written in WCF. This allowed consumers to perform the core functions of the WinForms app.
  • Worked on a web portal written in MVC 2 and jQuery.
  • Worked on a prototype web app using MVC 4, Bootstrap, AngularJS and DevExpress MVC Client-Side Controls.

Redwood Technologies - Technical Support

August 2011 - November 2011

I performed first and second line support at Redwood Technologies. I also worked on the internal ticketing system, written in PHP and MySQL.




Baltic Creative Campus
L1 0AH