Joseph Wynn

My name is Joseph Wynn. I'm a full stack developer and engineering team lead with a focus on performance and accessibility. My experience is with building high-traffic, high-availability distributed systems at companies like BBC News and Time Inc. I maintain some open source projects ( and occasionally blog about my experiences (


Developer at SpeedCurve

September 2017 — Present

At SpeedCurve I've been able to take my passion for web performance even further. I build features that help people understand their performance, using statistical analysis and data visualisation to extract meaningful information from millions of data points.

Tech Stack: PHP, JavaScript, MySQL, and AWS (EC2, S3, Redshift)

Principal Software Engineer at BBC News

August 2014 — September 2017

I led the engineering team rebuilding the front page of BBC News with a rigorous focus on performance. The new front page is significantly faster, and drives better user engagement: bounce rate is down 2% and weekly return visits are up 9%. The front page is built with Node.js, composed of React components that are shared through an internal open source effort. The components are exposed as HTTP endpoints and assembled by a page composition service.

Working closely with product teams and business analysts, I oversaw technical delivery of projects. This included managing stakeholders, defining the technical architecture, and building continuous integration pipelines. I developed core features, mentored developers, defined code structure, and worked closely with other teams to deliver integrated features.

Tech Stack: Node.js, Ruby, Go, AWS (EC2, ELB, S3, DynamoDB), and Docker

Senior Developer at Rightster

December 2013 — August 2014

When I joined Righster I took control of their video distribution front-end by introducing a modular architecture based on AngularJS and RequireJS. This enabled the team to effectively manage tens of thousands of lines of JavaScript without compromising on build speed or quality. I worked closely with the platform team to define APIs that allowed us to build an efficient presentation middle layer.

I introduced a Git workflow that streamlined our deployment process and reduced defects by cutting releases from a single branch and enforcing code reviews before merges.

Tech Stack: PHP (Zend), PostgreSQL, Lucene, ElasticSearch, and deployments to EC2 instances

Senior Developer at Time Inc. UK

May 2012 — December 2013

At Time Inc. I worked on building out a new API-driven mobile web site platform. During this project I became interested in automated testing as a way to improve the quality of our products. I wrote a smoke test tool that uses PhantomJS to check for common page-level errors, and takes a screenshot of each page to aid manual visual checks. This helped catch bugs quickly, and enabled us to deploy the platform several times a day with confidence.

I also introduced JavaScript unit testing to the engineering department and encouraged more automated testing during the monthly developer gathering. The slides from my talk are available here.

Tech Stack: PHP (Symfony), JavaScript, automated testing with PhantomJS

Developer at Chroma

April 2011 — May 2012

Working in a small close-knit team I architected and built a web interface used by bookmakers around the UK to monitor and set pricing in real time. To support legacy browsers, I chose to implement a long polling mechanism to achieve the "real time" functionality.

I also worked closely with Chroma's clients to create bespoke modules for the ExpressionEngine CMS, including an interface for managing email campaigns using the Campaign Monitor API, and a membership management tool for Racing UK Club.

Tech Stack: PHP, MySQL, JavaScript

Developer at Zeevo

June 2010 — April 2011

Using the CodeIgniter PHP framework and Doctrine ORM, I helped to build a booking and scheduling system used by tourism operators around New Zealand.

I was also involved in architecting and building a secure file sharing application using the Dropbox API.

Tech Stack: PHP, ASP.NET, MySQL, JavaScript


Becoming a team lead: a survival guide (2018)

Based on my experiences transitioning to a team lead role at the BBC, this is the survival guide I wish I had many years ago. It contains techniques for growing a happy & successful team, as well as tips for dealing with some of the pressures that come with being a team lead.

Wildly Inaccurate

A Hacker's Guide to Git (2014)

Written from the perspective of a tinkerer who is peeking under the hood, this book explains some of Git’s core concepts including basic object storage, commits, branches and tags. It also contains in-depth explanations about the different kinds of merging in Git.

LeanPubWildly Inaccurate

HTML5: Features and Limitations (2010)

An analysis of the (then) forthcoming HTML5 specification. The summary of this publication was displayed at the first annual CITRENZ conference, along with a live demonstration of some the new Google Chrome APIs.

CITRENZ (Summary Only)

Open Source

Below is a collection of my most popular open source work. You can visit my GitHub profile for a more complete picture of the open source work that I do.