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

I'm a good communicator and passionate about delivering quality software. I have broad industry experience across a range of types of organisations - including investment banks, consultancies & startups.

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

I'm big on code quality and one of my interests is static code analysis (I have published my own open source static analysis tool on GitHub).

Key Skills

  • JavaScript & TypeScript
  • React (& ecosystem)
  • Recoil, Redux and other state management tools like statecharts
  • Concurrent Mode, Suspense, Code splitting
  • Unit testing via Jest & Testing Library, e2e testing (Cypress)
  • GraphQL
  • NodeJS ecosystem & tooling (deep understanding of npm)
  • Data structures & algorithms (arrays, graphs, trees)
  • AWS & popular cloud services (ecs, s3, lambda)
  • Decent web architecture understanding - microservices, horizontal scaling, load balancers, failover, message queues.
  • Personal interest in functional programming (& other programming styles)
  • Experienced with pair programming (big fan)
  • Strong verbal & written communicator
  • Strong experience with CI/CD tooling (Travis, Gitlab, Jenkins, etc)
  • Experience implementing developer tooling (CLIs, self service systems)
  • Experience writing documentation and providing programmatical APIs
  • Coverage/static analysis toolings and practices


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

Additional Skills

  • Personal interest in programming languages including Rust, Golang, Python & Java
  • Solid experience working in a banking context: secure practices and constraints
  • 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. Also experienced with SAFe.
  • Caching (it's simple but hard!)
  • Naming things (even harder!)


Citigroup - 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