Full-stack software leader, architect and engineer with over 12 years experience building scalable, fault-tolerant and maintainable systems with an emphasis on simplicity, empiricism and delivering value early.
Specialties include: high availability distributed systems architecture, planning for failure and graceful degradation, designing intuitive APIs, SQL and NoSQL databases, deep AWS experience, leading and mentoring engineering teams, blameless post-mortem practices, continuous delivery.
Learns new programming languages quickly, most productive in Python, Javascript, Ruby, Java, Objective-C.
VP of Technology @ GameChanger is ESPN.com for amateur sports. We provide mobile scorekeeping apps, live game content, team management tools, alerts and over 150 real-time stats to millions of teams around the world.
VP OF TECHNOLOGY (May 2015 - present)
■ Established, evangelized and communicated corporate technical strategy.
■ Actively promotes an engineering culture of software craftsmanship, selflessness, trust, responsibility and accountability by selling ideas, persuading stakeholders and leading by example.
■ Significantly improved quality and efficiency of business intelligence capabilities. Led a project to build an analytics pipeline integrating Apache Kafka, Hadoop, Amazon Redshift and Looker.
PRINCIPAL SOFTWARE ENGINEER (June 2014 - May 2015)
■ Improved site availability from 96.69% to 99.99% over 6 months by eliminating unnecessary architectural complexity, decoupling key functions into microservices and removing scalability bottlenecks.
■ Improved deploy speed and reliability by building a continuous delivery pipeline based on Docker which now delivers >60 deploys per day. Gave a talk about the project at NYC’s “CTO School” meet-up.
■ Simplified GameChanger’s legacy HTTP APIs by introducing a Node.js orchestration layer.
■ Increased security by migrating GameChanger’s entire distributed backend (including a 12TB 35-node MongoDB cluster) from Amazon EC2 Classic to Amazon VPC with zero downtime.
SOFTWARE ENGINEER (August 2012 - June 2014)
■ Designed and built GameChanger’s real-time game stream server using Node.js and Redis.
■ Improved developer productivity by creating a number of open source frameworks, most notably:
- - Mongothon - a Python object modeling and validation layer for MongoDB.
- - Monufacture - a Python library which facilitates easy creation of reusable MongoDB test data.
- - Schemer - a schema-based Python library for validating dictionaries. From August 2012 to Present (3 years 5 months) Greater New York City AreaSelf-Employed @ ■ Created a location-based data crowd-sourcing Android application with a Rails-based server backend.
■ Implemented payment processing for a Rails-based CRM application used by go-kart circuits. From March 2012 to August 2012 (6 months) Founder @ Compowdre was an Android app I created for the winter sports market. Compowdre allowed skiers and boarders to track their speed, elevation and distance together with the actual runs they had completed at each resort and share the information with their friends as a social feed along with gamification incentives.
■ Created the app using Android’s Java framework, gaining familiarity with location services, Google Maps API, secure network IO, power management, alarms, SQLite, OAuth, content providers and more.
■ Created a Ruby-on-Rails-based web application with a JSON REST API to serve data to/from the Android app. Hosted the application on Heroku.
■ Built a web UI on top of Google Earth allowing users to draw out the geography of ski runs. This crowd-sourced data was in turn used to power the Android app. From July 2011 to August 2012 (1 year 2 months) Staff Software Engineer @ CHP is an enterprise software provider to the asset finance industry primarily through its “ALFA” platform. Throughout my tenure I worked primarily on-site alongside customers building custom extensions to the product. This included multi-month projects around world for clients in Kansas, Rhode Island, London (UK), Tallinn (Estonia), Riga (Latvia), Vilnius (Lithuania) and Stockholm (Sweden).
STAFF SOFTWARE ENGINEER (May 2010 - June 2011)
■ Built a SOAP API on top of JAX-WS to integrated ALFA with over 20 of a client's existing systems.
■ Designed an async processing framework allowing ALFA to distribute work across a Java/J2EE cluster.
SENIOR SOFTWARE ENGINEER (May 2008 - May 2010)
■ Built a framework allowing core Java application processes to be instrumented via JMX.
■ Created ALFA's batch customer document generation platform in Java using JAXB, XML and XSLT.
■ Managed the rollout of enterprise infrastructure for a major pan-European project, working with client stakeholders to estimate costs, plan a delivery schedule and deliver on that schedule.
SOFTWARE ENGINEER (March 2006 - May 2008)
■ Created a flexible linear interpolation-based calculation engine in Delphi Pascal with an intuitive user interface for pricing a variety of complex financial products factoring in a number of different variables.
■ Built a custom plugin in Delphi Pascal for generating and sending out customer invoices.
■ Used a lesser-known macro language called "LANSA" to build a CRM interface for finding and reporting customer account statements. From March 2006 to June 2011 (5 years 4 months) Software Engineer @ Titian is a start-up which supplies sample management software to the pharmaceutical industry with the goal of streamlining drug discovery processes through automation.
■ Developed a C#.NET application to drive liquid-handling robotic hardware, including the creation of a driver framework allowing multiple models of robot to be driven via custom pluggable machine drivers.
■ Deployed, customized and configured Titian’s software on site at the labs of various blue chip pharmaceutical companies in the UK, USA, Germany and Japan.
■ Developed various modules of Titian's “Mosaic” drug discovery asset management web application using ASP.NET, XSLT and Oracle PL/SQL. From November 2003 to March 2006 (2 years 5 months) London, United KingdomPlacement Student @ I worked at Nortel both during my pre-university gap year and for a summer placement in 2000. My work centred on the testing of software features to be incorporated into new versions of the Nortel DMS-100 telephone switch operating system. From 1998 to 2000 (2 years)
MEng, Electrical & Electronic Engineering @ Imperial College London From 1999 to 2003 Tom Leach is skilled in: Agile Methodologies, Java, MongoDB, SQL, JavaScript, XML, Ruby on Rails, MySQL, Android, Python, Hibernate, Guice, Node.js, Groovy, JMS
Websites:
http://gc.com,
http://leach.it,
http://leach.it