Tom J. Watson


Hi, I'm Tom - a freelance software engineer. When I'm not working, you'll find me playing badminton, watching too many types of motorsport or sitting on a terrace somewhere in Madrid.


Here are some things that I've built over the years.


Emoji Picker for Linux written in GTK3

Emote is a modern emoji picker for Linux rocket. Written in GTK3, Emote is lightweight and stays out of your way.

More + Close -

The important news, without the toxicity. scrapes Wikipedia’s Current Event Portal and repackages the data into a more readable format. The motivation was to provide a way to keep up with current events without having to subject yourself to the toxicity of the 24 hour news cycle.

More + Close -

Desktop application for managing periodic breaks.

BreakTimer allows you to set up customizable breaks and will remind you to take them. It is available as a native desktop application for Linux, macOS and Windows.

More + Close -

Webapp for browsing and discovering backpacking destinations.

Waystops was born out of the frustration that a similar tool didn’t already exist. When planning a trip, I want to be able to see what common destinations exist and where they are located on a map - not an article. All data was sourced from Wikivoyage and Wikipedia and is displayed with Mapbox.

More + Close -

Remote file copy, powered by the Dat protocol.

dcp copies files between hosts on a network using the peer-to-peer Dat network. dcp can be seen as an alternative to tools like scp, removing the need to configure SSH access between hosts. This lets you transfer files between two remote hosts, without you needing to worry about the specifics of how said hosts reach each other and regardless of whether hosts are behind NATs.

More + Close -
WebTorrent Protocol

Proof-of-concept distributed web powered by WebTorrents.

This is a proof-of-concept implementation of a distributed web powered by torrents. Instead of the traditional client-server model, websites are loaded directly from torrents, allowing websites to be hosted in a distributed and redundant manner.

More + Close -

A collection of UI experiments.

Mostly built using Canvas.

More + Close -

Free peer-to-peer video conferencing.

A free and open source video conferencing application, powered by WebRTC. Simply create a room, share it with your friends and chat away. The app itself is very small, with the heavylifting done using webrtc-swarm and a signalhub as a signalling server.

More + Close -
Recommend Me A Phone

A tool for streamlining the process of choosing a new phone.

RMAP tries to improve the strangely difficult task of choosing your new phone. It does this by letting the user set a budget and narrow-down their search with a simple set of powerful filters. The site is built with React and the search is powered by Elastic Search over AWS lambda. It make take a few seconds to load as it is pretty much archived and currently running on heroku free-tier, which sleeps apps when not in use.

More + Close -
C Wasm vs JS Benchmarks

Comparing C Wasm and JS performance.

A collection of basic performance benchmarks that you can run on your own browser in order to compare C WebAssembly and JavaScript performance.

More + Close -
Break Timer Extension

Chrome/Firefox Extension for managing periodic breaks.

Break Timer allows you to set up customizable breaks and will remind you to take them. Taking breaks whilst working or studying is crucial in preventing RSI, eye-strain and tiredness.

More + Close -

A map-based web app for discovering the world’s mountains.

A web application for browsing the mountains of the world using Google Maps. Zoom and pan around the map to find significant peaks in an area or use the search box to find a mountain. Click a marker to reveal information about each mountain, and click through to the full page view to find further information and discussion. Also my first major experience of getting burned for hot-linking to 3rd party resources - Freebase API has since shutdown taking all images with it, meaning the images of the mountains are no longer available. Lesson learned.

More + Close -
Old Reddit Redirect

An extension that ensures Reddit always loads the old design

After Reddit releasing what must be one of the most unpopular site resdesigns of all time, I built an extension that simply reroutes all links or page loads to the design.

More + Close -
Reddit Comment Collapser

A more elegant solution for collapsing reddit comment trees

Collapse a comment and all of it’s replies by clicking on the column of the comment you wish to collapse. No longer get stuck in the middle of a huge comment chain - simply select the outermost column to collapse the whole top-level-comment.

More + Close -

I'm a full-stack developer with over 10 years professional experience working on high-availability, high-traffic web applications, APIs and desktop applications. I have particular expertise in:

  • Javascript/Typescript, Python
  • SQL / NoSQL, caching, search, queueing
  • Unit testing, continuous deployment
  • ReactJS
  • Modern frontend tooling (ES6, Webpack, SASS)
Deep Channel

2019 - Ongoing | Technical Lead

Deep Channel is creating next generation of development tooling for modern data teams.

I was the first engineer on Deep Channel Studio, a comprehensive data IDE for working with warehouses, dbt projects, and notebooks. The IDE is an electron application built in Typescript. I took the initial vision and developed it into a usable MVP. I have since helped grow the team out and and am currently leading ongoing development of the application.

More + Close -
Matters Media

2017 - 2019 | Remote Contractor

Matters Media is a publishing company that creates and runs multiple news websites serving tens of millions of users per month.

I developed Matters Media’s custom CMS platform that powers all of their websites, helping to move them off of Wordpress. Scalability and availability were the focus, with much time spent building high-performance NodeJS APIs and rock-solid caching on Redis. I also developed mutlitple integrations with third party publishing platforms such as Facebook Instant Articles and Apple News, as well as developing an intelligent Ads Management system for Facebook Ads.

More + Close -
Deuce Tennis

2018 | Remote Contractor

Deuce helps tennis players find courts and coaching sessions around the U.K., making it easier and more affordable to find a game.

I developed their landing page and contact system, getting them ready in time for the launch of the service.

More + Close -

2014 - 2017 | Remote Contractor

Conversocial is a platform for providing social customer care at scale. Used by companies such as Google, Tesco, BBC and RyanAir.

I worked as a remote contractor for Conversocial for 3 years, during which time the comapny grew from a small startup of ~20 employees into a successful and established company. I helped develop their Python platform that processes tens of millions of social posts per day, using technologies such as MongoDB and ElasticSearch. Frontend work included rebuilding their customer-facing web app as a modern React application and creating a proof-of-concept React Native application for a project in collaboration with Google.

More + Close -

2012 - 2014 | Software Developer

Playtech is one of the world’s largest online gaming companies.

I worked on Playtech’s lottery product, developing systems that handled millions of transactions per week, using mainly Python and Oracle/PLSQL.

More + Close -
Morgan Stanley

2010 - 2011 | Software Developer

Morgan Stanley is a world-leading investment bank.

Mostly using Perl and Java to ensure their database of financial product reference data was kept up-to-date and accurate. Also where I discovered that the corporate world was not for me!

More + Close -