I'm Sam, a software engineer based in London.

I'm a strong communicator and passionate about delivering quality in products. I have broad industry experience across a range of types of organisations - including banking, consultancy & advertising. I'm an expert on code quality and spend time interacting with the open source community across a range of projects.

I have worked accross the stack with various technologies and have a particular interest in all things JavaScript. I have a heavy focus on UI development, specialising in advanced React projects.

Skills

Programming
  • JavaScript & TypeScript
  • React expert
  • Recoil, Redux and other state management tools like statecharts
  • Concurrent Mode, Suspense
  • Next/SSR implementations
  • Unit & integration testing via Jest, Enzyme & Cypress
  • NodeJS ecosystem & tooling (deep understanding of npm)
  • Personal interest in programming languages including Golang & Python
  • Personal interest in functional programming (& other programming styles)
  • Big fan of paired programming
  • Strong communicator
  • Solid experience working in a banking context: secure practicies and constraints
  • Solid experience cloud technologies
  • Strong experience with CI/CD tooling (Travis, Gitlab, Jenkins, etc)
  • Coverage/static analysis eg Instanbul, CodeClimate
  • Good experience & understanding of data structures and datastores
  • Reasonable understanding of web accessibility
  • Reasonable systems experience: message queues, emails, security
  • Experienced working in Agile teams, Scrum & Kanban styles
  • Caching (it's simple but hard!)
  • Naming things (even harder!)
Job History

Education

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

Experience


Citibank - Cross-Asset Risk, ICG (April 2020 - Present)


Role: Senior UI Developer (VP)

Implementing and architecting a high-quality React/TypeScript/GraphQL UI for a cross-asset risk system to service the Markets & Securities Services business. Collaborating with global partners to drive the implementation of next-gen Risk systems.

Key tech: React, TypeScript, GraphQL, Micro Frontends

Concentra Analytics - OrgVue (September 2019 - April 2020)


Role: React JavaScript Developer (contract)

Worked in the core OrgVue team to deliver the 3.4 milestone. Major new features including new charts and data fetching reimplementation. I also gained experience working with the new React concurrent mode and statecharts for state management.

Key tech: React, TypeScript, Concurrent Mode, Highcharts

Idean X SMARTY & Three (May 2019 - September 2019)


Role: React JavaScript Developer (contract)

Delivering new capabilities on SMARTYs marketing site and user webapp. New features and improved experiences for many thousands of users.

Key tech: React, Redux, Jest, Flow, Gatsby

Reason X AlixPartners (July 2018 - May 2019)


Role: React JavaScript Developer (contract)

Core member of a team delivering an internal greenfield financial analysis webapp from day 1. Primary member of a 6-strong frontend dev team iteratively delivering a high-value product. My primary highlight on this project has been introducing the team to Flow and using it extensively throughout our code, plus leading the charge in testing.

Key tech: React, Redux, Jest, Flow

The App Business X The Racing Post (November 2017 - July 2018)

The App Business X The Racing Post (November 2017 - July 2018)

Role: React JavaScript Developer (contract)

I worked on an embedded agile team delivering substantial upgrades to racingpost.com. By the end of this project, racingpost.com went from only single bets, to a fully featured betslip supporting multiples and accumulators accross 6 bookmaker partners, with a brand new user experience. The stand-out feature of this project was the quality of the betslip component we delivered, including 99.96% test coverage.

Key tech: React, Redux, Jest

Circus Street (April 2017 - November 2017)

Circus Street (April 2017 - November 2017)

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, Jest, Angular

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

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

Role: Senior Full-Stack Developer

I was a significant contributor to the new (as-yet unreleased) 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 backend that involved multiple levels of caching and used microservices-like patterns. This project really exposed the challenges of a content-heavy organization.

Key tech: Node, Laravel, Vue

HAIRCVT (2014 - 2016)

HAIRCVT (2014 - 2016)
HAIRCVT (2014 - 2016)
HAIRCVT (2014 - 2016)

Role: Lead Developer & Partner

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.

Key tech: Angular, PHP, AWS

Google Nexus 5 (2013)

Google Nexus 5 (2013)

Role: Tech Lead

I led 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: Angular, GSAP/TweenMax