Tom J. Watson

FREELANCE SOFTWARE ENGINEER
MADRID, SPAIN

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.

Recent Posts
All posts »
Work

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

  • Python, Node
  • SQL / NoSQL, caching, search, queueing
  • Unit testing, continuous deployment
  • ReactJS, AngularJS
  • Modern frontend tooling (ES6, Webpack, SASS)
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 -
Matters Media

2017 - Present | 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 -
Conversocial

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 -
Playtech

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 -
Projects

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

dcp

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 -
p2p.chat

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 -
meta.space

A collection of UI experiments.

Mostly built using Canvas.

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 -
Break Timer

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 -
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 old.reddit.com design.

More + Close -
mountains.io

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 -