Tom Stuart - CV

tom@tomstuart.co.uk

Summary

Software developer, technical leader, people manager, conference speaker, cyclist, runner.

Buzzword list

Ruby, Scala, Java, JavaScript, PHP, Rails, Finagle, Spring, Cucumber, Git, Vim, Chef, Puppet, Ansible, Terraform, Kubernetes, Docker, AWS, Refactoring, SQL, BIND, Apache, Scrum, Kanban, MongoDB, Jenkins, CSS, Sed, Awk, XSLT, Subversion, Perforce...

Career at-a-glance

Nov 2017 - Oct 2018 Vice President, Software Engineering Movinga
Jan 2016 - Oct 2017 Technical Lead SoundCloud
Sep 2012 - Jan 2016 Developer SoundCloud
Sep 2011 - Jun 2012 Developer Forward Internet Group
Sep 2010 - Sep 2011 Developer & Systems Administrator Jobsgopublic
Jan 2010 - Sep 2010 Developer Alliantist
May 2009 - Jan 2010 Consultant Developer Perform Group
Jan 2008 - May 2009 Technical Trainer FDM Group
Sep 2007 - Dec 2007 Trainee Developer FDM Group

Education

BA - Classics - 2:1 (University of Oxford, 2007)

Employment history

Movinga - Vice President, Software Engineering

Movinga is a marketplace which connects people moving home with relocation companies. Operating in a mutually beneficial way - by helping small relocation companies with customer service and marketing, and by helping customers find reliable home movers and insurance providers - Movinga has enjoyed solid growth in its two key markets of Germany and France, and recently entered the Swedish market.

Joining a small engineering team with a lot of legacy software to look after, I was given the remit to expand the team while changing its culture - to be more collaborative, diverse, inclusive, and communicative.

Key achievements:

  • In a short span of time, expanded the engineering organization from 8 to 16 developers, while improving its gender ratio from 7:1 men/non-men to 11:5.
  • Put team leads and a two-tier reporting structure in place to facilitate this expansion, and further expansion in the future.
  • Developed a framework for aiding in the career progression and assessment of developers, along with a peer and manager feedback process to support it.
  • Kicked off and occasionally contributed to an effort to describe all Movinga's infrastructure in Terraform and Ansible.
  • As part of this infrastructure description effort, oversaw efforts to simplify the infrastructure, leading to a 50% reduction in hosting costs.
  • Along with the Head of Product, developed a process for high-level planning which brought business stakeholders and the technology organization into closer alignment and led to faster iteration.
  • Oversaw the integration of various technologies acquired from our erstwhile competitor, Move24.

SoundCloud - Tech Lead

During my time at SoundCloud, I became increasingly interested in fixing technical and process problems affecting multiple teams. I was able to work on some of these when I stepped into the "Tech Lead" role. Unlike a tech lead at many other companies, I worked with multiple teams to oversee and guide the technical quality of what they were delivering, as well as collaborating with other technical leads and the engineering leadership to initiate and guide projects to improve SoundCloud's technical landscape across the board.

Key achievements:

  • Proposed and helped implement changes to the emergency on-call system for engineers, leading to a 50% cost saving and increased job satisfaction from engineers in the employee survey.
  • Convened and moderated the tech leadership forum - a process and regular meeting for escalating cross-cutting technical issues or opportunities, and scheduling work in those areas.
  • Produced architectural guidance for microservice authors - how and when to apply authorization filters, how to identify opportunities to extract parts of the monolith to microservices, how to develop a testing strategy.
  • Produced and delivered a workshop on the topic of workflow improvement. Suggested concrete improvements to SoundCloud's product development process.

SoundCloud - Developer

SoundCloud is a leading audio sharing platform and one of the top 200 Alexa-ranked sites by traffic. Used by audio creators from those at the beginning of their careers to megastars, SoundCloud offers a huge library of varied content. Working on various teams as a senior developer, I had the chance to be part of key projects in SoundCloud's history.

During my time at SoundCloud, I worked with, among other technologies: Rails; Scala and Finagle; Kubernetes; MySQL; Hadoop; Clojure; and React Native.

Key achievements:

  • Implemented sign-in with Google
  • Migrated RSS publication for podcasts from the Rails monolith to a Clojure microservice.
  • Developed the API and made tweaks to the client for a new creator-focussed mobile app, "Pulse".
  • Planned and executed online schema changes for large database tables to ensure continuity of service.
  • Developed, published, and evangelized internal guidelines for determining the production readiness of microservices.

Forward Internet Group - Developer

Forward Internet Group is a technology company comprising a number of UK technology brands, including uSwitch, Invisible Hand, and Factory Media. Working as a developer within uSwitch's Advice and Innovations team, I was responsible for collaboratively devising, creating and testing new business ideas; maintaining and improving existing personal finance offerings; and creating a new application for the car insurance comparison journey.

Working on a small, self-organizing team of 4 developers, I had the chance to develop software using Rails, Sinatra, node.js and Clojure. I maintained a focus on back-end development while assisting our frontend developer with his work and taking on frontend tasks myself when there is excess demand. I also shared in the responsibility for maintaining and configuring our operations platform, using Puppet and AWS extensively.

I was frequently involved in conversations regarding the management of workflow and allocation of development efforts, aiming to achieve consensus from all team members on what are the priorities and constraints, based both on financial metrics and on our long-term goals for the team and the business.

Whilst working at Forward I continued to speak at conferences and user groups, including Ruby Manor, the London Ruby User Group, and internal development meetings and showcases.

Key achievements:

  • Worked on a small team to develop car insurance comparison journey with industry-leading UX in short time.
  • Migrated several personal finance applications from legacy .NET stack to Ruby- and Javsacript-based systems.
  • Devised and tested various new business ideas following Lean Startup practices.
  • Organized Vim workshop with an external expert, hosted at Forward.
  • Maintained respectable win/loss ratio at the pool table.

Jobsgopublic - Developer and Systems Administrator

Jobsgopublic produce some of the UK's best known specialist jobs boards, including jobsgopublic.com, lgjobs.com and myhousingcareer.com. I joined their small team of 3 developers and quickly became productive in all aspects of the role, maintaining and extending a large Rails application and developing new applications and utilities in Sinatra and Rails.

Following the departure of the the systems administrator this year, I shared in the responsibility for maintaining the company's infrastructure, administering mySQL, Apache, MongoDB, Solr, Bind and Jenkins servers.

Key achievements:

  • Introduced behaviour-driven development supported by Cucumber and Relish
  • Replaced a proprietary gem management solution with Bundler
  • Led the project to upgrade the company's main application to Rails version 2.3
  • Maintained the company's infrastructure with Chef and migrated key servers to Amazon EC2
  • Organized a table football tournament. I won.

Alliantist - Developer

Alliantist is a small company specialising in management and business information systems developed in Ruby on Rails, specifically their flagship product PAM, a web application for project and partner relationship management in use across the majority of Probation Trusts across the United Kingdom. During my time with Alliantist, I was responsible for developing new features as well as heading second- and third-level support of the application.

Key achievements:

  • Introduced the use of Cucumber for automated acceptance testing to the team
  • Implemented scripts for importing performance indicator data in bulk from legacy spreadsheets in use at a major Probation Trust
  • Migrated version control from Subversion to Git
  • Implemented context-sensitive help tooltips for new users

Perform Group - Consultant Developer

As the first of FDM Group's consultants placed at Perform, I fulfilled a dual role; first and foremost to become familiar with and develop Perform's technologies, but also to assess the level of technical competence and the skills required for a newly-trained consultant developer starting at the company. I was successful in both tasks, working on a variety of projects whilst at Perform and assisting in the entrance of another consultant to the site via a programme of learning I devised in liaison with Perform's technical management.

Working on websites for high-profile clients such as EMI and the Women's Tennis Association, I developed my knowledge of XML, Javascript and Spring, and also learnt XSLT and the use of Perforce for version control.

Key achievements:

  • Developed a solution for localizing attributes of business objects transparently using Java annotations and Spring
  • Introduced test spies with Mockito
  • Developed Ruby scripts for streamlining various supporting tasks in the development workflow. Apparently, they're still in use!
  • Used my digital watch to diagnose a performance issue

FDM Group - Technical Trainer & Trainee Developer

FDM offers newcomers to the industry an excellent first job, providing training followed by work with their clients as junior consultants. After quick progress through the training programme, I was quickly asked to become one of FDM's first 'Mountie trainers' - a junior role on the training team, delivering the training I had just received while continuing my own personal development. I taught both in formal workshops and informally as a mentor, teaching new entrants programming in bash with a Hangman game project, relational database design and development with a data migration project in Oracle, and teaching the principles of object-oriented design and development in Java.

Key achievements:

  • Devised and delivered workshops on shell scripting, object-oriented programming and SQL
  • Delivered commercial training to recently-placed consultants working with clients including the RSPCA
  • Led the training operation in the newly-created Manchester office
  • Created a web application with Spring for tracking trainee progress

Other things to know about me

I'm a keen runner and cyclist. Things I'm proud of here include my 10k time (39:11), my half marathon time (1:29:40), and my Marmotte finishing standard (Gold). If none of that means anything to you, that's OK. I promise not to talk about it too much.