Matt Kane


Tower of London Digital Visitor Guide

Client: Historic Royal Palaces

  • Android
  • React Native
  • Redux
  • TypeScript
  • Jest
  • Node.JS

A high-profile project used by thousands of visitors every day at one of the UK's most popular tourist attractions. The digital visitor guide (DVG) is an app distributed on Android-based devices to visitors to the Tower of London. The app provides visitor and interpretation information, but is based around the audio guide content. The main challenge was to deliver hundreds of audio files to devices that only have connectivity overnight. The audio files and content are served from a CMS, with a Node script that handles synchronisation with an on-site cache. The app syncs the data and assets in the background during a configured window every night, performing validation of the content and retrying downloads as needed.

BBC Food Roasting Calculator

Client: BBC

  • Preact
  • TypeScript
  • Emotion CSS-in-JS
  • Jest
  • Webpack
  • Storybooks

The BBC needed a roasting time calculator for their flagship Food site. I was sole developer on the project, which was delivered to a tight deadline as it was to be promoted alongside Christmas shows. I chose Preact as its small size was perfect for an embeddable tool like this. The BBC required the app to be delivered as a single JavaScript file, so I used Emotion for CSS-in-JS and did not extract the CSS from the bundle. The algorithms for calculating the times, temperatures and descriptions were provided by the client, alongside a large number of test cases. As well as the potential for ruining Christmas dinner, there were food safety and liability concerns, so mistakes were not an option. I implemented the calculation logic in a separate library for testability and potential future re-use. I wrote comprehensive unit tests, including a tool that converted the client's spreadsheet of test cases into a JSON file, which I then loaded inside the Jest test suite, creating a unit test for each item. Accessibility is a central requirement for all BBC projects, which was a particular challenge for the custom controls required by the design. I implemented tab capture and ARIA labels to enable it to pass a11y tests

The Penguin Quiz

Client: Penguin Random House

  • Alexa Skills Kit
  • TypeScript
  • AWS Lambda
  • Node.JS
  • Jest

This literary quiz Alexa skill was developed for Penguin Books UK. I used a functional programming approach for this project, to aid testability. I developed the skill in TypeScript, and used Jest for unit and integration tests. I used lambda-local to test sample event fixtures.

Vela One: The fastest flash in the world

  • Product development
  • AVR
  • Embedded C
  • Kickstarter

The Vela One is the fastest camera flash on the market, and the first ever microsecond LED flash. I developed this product from initial concept through R&D, successful Kickstarter campaign to mass production. This involved contracting industrial designers to develop the enclosure design, and working with electronics design engineers to develop the unique high-speed circuitry to make the idea a reality. I wrote all of the firmware and performed all of the testing. I handled all marketing for the Kickstarter campaign, which raised double its target and secured media coverage in high profile publications around the world. I then sourced manufacturers and suppliers in the UK, Europe and China, and single-handedly organised logistics for hundreds of units shipping to backers around the world. After the campaign it has been on general sale, and has gone through four further production runs. I also developed and launched further products, including a camera trigger which has shipped thousands of units. Customers include NASA, SpaceX, FBI labs, the UK defence research labs, not to mention hundreds of professional and amateur photographers around the world.