I'm Sam, a web developer based in east London.

The hyper-connected world we live in today means we have a unique opportunity to deliver real world value to thousands or even millions of people by deploying code onto devices and networks. I think it's a special time to be involved with the web and I'm grateful to be a part of it.

I'm passionate about what I do and having fun doing it with amazing people inspires me.

I have worked accross the stack with various technologies and have a particular interest in all things JavaScript.

Experience

Technical

  • JavaScript (browser, server), including ES6
  • React / Redux and related modules
  • Angular 1.X / 2+, some Vue.js
  • TypeScript, some Flow
  • Front-end tooling: Grunt, Gulp, Webpack
  • Testing: Jasmine, Mocha, Jest, Enzyme
  • Static analysis tools like Istanbul and Plato
  • Hybrid apps (cordova, ionic but no React Native yet)
  • Web Accessibility

Supplementary

  • PHP7 (Laravel, Symfony)
  • CI Tools, CD and related processes - Travis, Codeship etc
  • Databases: Relational (MySQL, Postgres), Document Store (MongoDB), Memory Store (Memcached, some Redis)
  • Message queues (e.g. beanstalk) and background jobs
  • Cloud services (e.g. AWS services such as EC2, S3, ELB, Lambda) and CD
  • Virtualization and containerization (Vagrant, Docker)
  • System and architecture design, scalability
  • Caching (it's simple but hard!)
  • Naming things (even harder!)

Commercial

  • 04/17 - Present Senior Front-End Developer (freelance) at Circus Street
  • 10/16 - 03/17 Senior Full-Stack Developer (freelance) at Mentally Friendly
  • 07/16 - 09/16 Senior Front-End Developer (freelance) at Code & Theory
  • 2014 - 2016 Lead Developer at HAIRCVT
  • 2014 - 2014 Full-stack Developer at Ustwo
  • 2013 - 2014 Web Developer at UNIT9
  • 2011 - 2013 Front-end Developer at UNIT9

Academic

  • 2008 - 2012 BSc Web Application Development (University of Plymouth)

Past Work

Circus Street (April 2017 - Present)


Role: Senior Front-End Developer

I helped the team at Circus Street advance their online learning product by working accross their offering including the marketing website, the learning web application, the hybrid app and several internal management tools. This ranged from several greenfield React/Redux projects with 80%+ test coverage to maintaining an older Angular 1.X project. During this role I learned a great deal about Redux and had the pleasure of implementing several apps using it.

Key tech: React/Redux, Angular, Jest, Enzyme

Mentally Friendly X British Museum (October 2016 - March 2017)


Role: Senior Full-Stack Developer

I was fortunate enough to be a significant contributor to the new (pending release Q4 2017) British Museum website. Our team delivered a large project that enables the museum to deliver a vast range of dynamic content to over 500,000 global visitors per month. We implemented a fully component-ized responsive website with a containerized (docker) backend that involved multiple levels of caching and used microservices-like patterns.

Key tech: NodeJS, Laravel, Vue, Webpack, CI, Mocha, Phpunit

Client: The British Museum

Code & Theory (August 2016 - October 2016)


Role: Senior Front-End Developer

Built a small React website for a client working in the Hollywood entertainment industry (currently under NDA). It's isomorphic i.e. completely pre-rendered and takes advantage of both React components and the Flux pattern. I met some interesting challenges of React (+ JSX) here, such as unsupported attributes, but also really enjoyed the benefits of the Flux pattern (mainly strong control over state) and the make-it-a-component thinking (it almost forces you to break things up early on).

Key tech: React, Flux, Sass, Node, Gulp

HAIRCVT (2014 - 2016)


Role: Lead Developer & Partner

An incredible experience - a real rollercoaster ride. I led a team of 2 from iterating prototypes, to MVP, to a product delivering record growth month-on-month. Our product was a Laravel/Symfony PHP monolith with a Angular 1.X front-end, with many more technologies and challenges hidden away - including message queues, cacheing mechanisms, a database migration, AWS deployment and a hybrid Ionic app.

You can see a staging version of the HAIRCVT website here.

For a deeper insight into how we built our product, I recommend checking out this excellent article from our designer Josh.

Key tech: PHP 7, Laravel, phpunit, Angular 1.X, ES6

Hello, My Name Means (2014)


Role: Tech Lead

I led this project's technical side from pitch and discovery phase right through to delivery in about 7 weeks (great job team!). The experience, aimed at parents-to-be, takes any name you give it and finds out interesting data from the web about it.

Key tech: Django, Celery, Backbone.js, GSAP/TweenMax, SoundJS

Client: Johnson & Johnson, DM9 DDB

Nexus 5 (2013)


Role: Tech Lead

I lead the technical side of Google's showcase site for the Nexus 5 phone that launched in 2013. A responsive, retina-compatible & parallax project with interactive 'moments', this site was visited by millions during the annoucement week. A challenging but rewarding project including integration with some internal Google systems.

Key tech: AngularJS, GSAP/TweenMax

Client: Google

Slavery Footprint (2011)


Role: Front-end Developer

Slavery Footprint is an interactive platform that estimates the amount of slavery likely to be taking place based on lifestyle choices of the user. Developed for a US non-profit. One of my first projects at UNIT9, I helped build the core backbone app with the tech lead.

Key tech: Backbone.js, RequireJS, Google Swiffy, Underscore

Client: Call & Response, MUH-TAY-ZIK HOF-FER

UNIT9.com (2012)


Role: Co-Lead Developer

In 2011/2012 UNIT9 underwent a minor rebranding process and part of this was getting a new website (which was a simple blog for the past 5 years). A colleague and I were given the project and managed development ourselves. We developed a highly sophisticated and feature-rich bespoke site on top of Wordpress - which was very challenging.

Key tech: Wordpress, PHP, JavaScript

Client: UNIT9

Find Your Way To Oz (2013)


Role: Front-end Developer

This project was an extremely impressive WebGL experience for Disney's 2013 Oz film. Studying at the time, I was drafted in to assist the final few weeks of development. I built an early version of the interactive music jukebox.

Key tech: Backbone.js, Grunt, WebGL, SoundJS

Client: Disney, Google

Eduvee (2012 - 2014)


Role: Front-end & Rails Developer

I worked with Eduvee at intervals over an 18 month period to help develop their Rails app as part of a redesign.

Key tech: Ruby on Rails, CSS

Client: Eduvee