Timothy Sherratt, Developer in London, United Kingdom
Timothy is available for hire
Hire Timothy

Timothy Sherratt

Verified Expert  in Engineering

Ruby Gems Developer

Location
London, United Kingdom
Toptal Member Since
July 8, 2016

Timothy has been a startup co-founder, web agency director, and engineering team lead. His interests lie in solving business problems with technology. He does most of his work in Ruby/Rails, where he has extensive experience building large, non-standard apps that scale excellently. He also has experience on the front-end building interactive user interfaces with React.js and associated tools.

Portfolio

Intro (introhq.com)
Bootstrap, React, MongoDB, Django
Mitoo
Amazon Web Services (AWS), Micro SOA, Pundit, Devise, Capistrano, Rackspace...
Bluefields
RSpec, Devise, Capistrano, Rackspace, Redis, MySQL, Ruby on Rails (RoR), Ruby

Experience

Availability

Part-time

Preferred Environment

Terminal, Git, Sublime Text, MacOS

The most amazing...

...thing I've created is a system that processed and inferred meaning to millions of sports results every day.

Work Experience

Contract Engineer

2016 - 2016
Intro (introhq.com)
  • Built out a system to track all notifications sent to users across various media, including complex notification preferences.
  • Created pages for users to set preferences and track their notifications.
  • Built interactive summary pages for users to explore their team's network.
Technologies: Bootstrap, React, MongoDB, Django

Co-founder/Head of Back-end

2014 - 2016
Mitoo
  • Designed and built a secure, stable, scalable API to run four mobile apps and a web app.
  • Created a system to scrape/integrate with sources of sports data, inferring meaning to the ingested data, keeping users up-to-date with sports results and schedules. At its peak, it processed millions of data per day, and had 1M+ users.
  • Built a data mapper type ORM on top of Active Record to allow greater separation between different parts of the system, leading to significantly improved developer efficiency for very large/complex Rails apps.
  • Oversaw all back-end engineering, from system architecture through to hiring and team management.
  • Transitioned Mitoo to a MicroSOA architecture (using sneakers/RabbitMQ) to simplify complex data-processing pipelines.
  • Designed and built a custom, reusable notification system to simplify and speed up generation of notifications from application events as well as track, log, and report on millions of notifications sent across various media (SMS/email, push).
Technologies: Amazon Web Services (AWS), Micro SOA, Pundit, Devise, Capistrano, Rackspace, Redis, Sneakers, Sidekiq, RabbitMQ, Ruby on Rails (RoR), Ruby

Head of Back-end Development

2012 - 2014
Bluefields
  • Spearheaded transformation of a large, monolithic, ball-of-mud codebase into a lean modular application capable of scaling.
  • Designed and built a secure, stable, scalable API to run a web app + mobile apps.
  • Built a notification system capable of automatically sending and individually tracking millions of notifications.
Technologies: RSpec, Devise, Capistrano, Rackspace, Redis, MySQL, Ruby on Rails (RoR), Ruby

Founder

2011 - 2012
Bit Circus, Ltd.
  • Built simple Rails apps to scale, at speed.
  • Learned to tread the balance between high-quality, maintainable code and the need to move as quickly as possible to build a successful business.
Technologies: PHP, MySQL, Ruby on Rails (RoR), Ruby

Head of Software

2008 - 2011
London Central Communications
  • Created a seamless voice recording system and web interface for file retrieval that interfaced with customer PBXs.
  • Built a cloud-based preferences and account administration system for Asterisk PBX installations.
Technologies: VoIP, Linux, PBX, Asterisk, Apache, Apache Tomcat, Servlet, Java

Storm - Data Mapper(ish) Style ORM for Rails

https://github.com/tpsherratt/storm
When Rails projects get *very* large or complex, development and developer efficiency typically slows down due to the interdependent (ball-of-mud) nature of the typical Rails app.

This is the cost of all the wonderful magic that Rails provides, and it means that you can get your projects up and running extremely quickly.

To combat this inevitable slow-down, I built a data mapper style ORM that sits on top of Active Record (i.e., uses its SQL generation, etc.). This enables different engines that do not depend on one another, giving much greater flexibility (at the cost of a little more typing) as products grow very large.

This forced separation means that once a large scale is reached, developers will not be dealing with a web of dependencies, and ultimately, it will be more easily able to split out apps that provide a subset of the main app's functionality, easing the path to an SOA architecture when this becomes inevitable.

See http://cbra.info/ for other people thinking around this topic.

Graceful API Error Handling

This is a sample showing error handling for a Ruby on Rails API. It gracefully captures all appropriate errors raised throughout the other controllers and returns relevant errors and status codes.

This particular code is within a Rails Concern, allowing it to be reused across a huge app, where much of the code is separated into various Rails engines.

Love Remote Work

This is an application that I worked on, starting with a simple MVP and currently undergoing updates to replace the front-end with React.js, and back-end with an appropriate API to support it.

Included here to demonstrate full-stack ability, as one of the few public-facing projects I worked on.
2004 - 2007

Bachelor of Science Degree in Computer Science

University of Bristol - Bristol, UK

Libraries/APIs

API Development, JSON API, Segment.io, Pundit, Sidekiq, Rails Engines, REST APIs, Python-rq, CarrierWave, Devise, jQuery, React, Ruby on Rails API

Tools

JBuilder, Rake, RSpec, Capistrano, RabbitMQ, Sublime Text, Git, Terminal, Servlet, Apache Tomcat, Apache, Asterisk

Frameworks

Ruby on Rails 4, Ruby on Rails (RoR), Ember.js, Bootstrap, Factory Girl, Django

Languages

Ruby, Python, HTML, Java, JavaScript, PHP, CSS, Less, Bash, SQL, Sass

Paradigms

RESTful Development, Functional Testing, Back-end Architecture, Unit Testing, Agile Software Development, Component-based Rails Architecture (CBRA)

Platforms

Linux, Amazon EC2, Iron.io, Rackspace, Algolia, MacOS, Amazon Web Services (AWS)

Storage

Amazon S3 (AWS S3), Redis, MongoDB, MySQL, PostgreSQL

Other

APIs, Web Scraping, API Design, API Testing, Quality Assurance (QA), Micro SOA, Ruby Gems, Keen.io, Branch Metrics, CanCan, Sneakers, PBX, VoIP

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring