Joseph Wynn's Résumé

Kia ora!

I'm Joseph Wynn, an engineering team lead and software developer based in Ōtautahi Christchurch. I have over 18 years of experience building high-traffic distributed systems and growing & supporting engineering teams. I have worked on interactive UI components to implementing real-time data processing pipelines.

On my journey to build better systems I have become a polyglot and a generalist. I have written software in many languages at almost every layer of the web stack: database, backend, API, frontend, CDN/edge, tooling, and testing. I have learnt how to estimate, plan, and deliver complex software projects with teams of all sizes.

Outside of my professional work I maintain several open source projects, (infrequently) write software development guides, and (even less frequently) write about other stuff. I'm also a runner, rock climber, dog lover, and father. Work-life balance is important to me, and I strive to ensure that everyone on my team can enjoy the same balance that I want for myself.

Want to know more? Please don't hesitate to get in touch if you'd like to ask me any questions. Feel free to ask about how SpeedCurve's real user monitoring (RUM) architecture handles 2000 requests per second, or about my role as Principal Engineer building the BBC's next web platform with 50 developers from multiple teams. I'm also happy to show photos of my two dogs and tell you where to find the best pizza in town.


Overview

Languages: Rust, TypeScript/JavaScript, Python, SQL, PHP
Platforms: Fastly Compute, Heroku, Amazon Web Services (AWS)
Data stores: MariaDB/MySQL, Amazon Redshift, SQLite
Workflow: Git, Docker, Jenkins, CircleCI, GitHub
Team lead: 5-10 direct reports, 50+ indirect reports

Experience

2020–present: SpeedCurve | Head of Engineering

Stepping into the Head of Engineering role, my initial focus was on expanding the team and setting technical direction. It was rewarding to empower the team to work on what was important to them while still delivering the needs of the product and business.

I oversaw the migration to a new cloud provider, enabling better scalability and faster deployments with no downtime. We adopted a service-based architecture during a period of high growth which enabled us to deliver new features without impacting existing services.

Due to our small team size, I remained an active contributor while in the Head of Engineering role. One of my bigger projects was building a bespoke database abstraction layer (DBAL) that allows end users to build custom charts, with the DBAL seamlessly fetching data from multiple sources. This project was a huge success and enabled us to easily add new data, dimensions, and even data sources.

2017–2020: SpeedCurve | Lead Software Developer

As a developer at SpeedCurve I worked on everything from the infrastructure, database, and backend to the API and frontend. I took ownership of SpeedCurve's real user monitoring (RUM) product, performing a major refactor of the data collection script and validating the results by writing a test harness with nearly 100% coverage. I migrated the RUM data ingestion from primitive VCL routines to a fast & flexible Rust service running on Fastly Compute. I used code generation techniques including self-modifying code to build highly-optimised SQL for generating correlation charts. I also guided our engineering team through building a library of modular front-end components using techniques that I pioneered at the BBC.

While I love coding, my priority as a team lead has always been unblocking my team and enabling them to work on the things they care about. Regular one-on-one meetings helped me identify and fix conflicts or burnout before they became issues for the wider team. I am proud to say that no one was afraid to ask for my time, and that we had a culture of lifting each other up.

2014–2017: BBC News | Principal Engineer

As Principal Engineer at the BBC I had 6 direct reports and more than 30 indirect reports spread across multiple teams and departments. I was involved in several large company-wide projects including the move from on-premise to cloud infrastructure, and the development of a completely new component-as-a-service architecture (which you can read about here). My team was responsible for the BBC News responsive web platform, but we also picked up tooling projects including a revamped CI pipeline that enabled teams to move from weekly deploys to several deploys per day.

Outside of my Principal Engineer role I also took charge of the BBC's performance initiative, and pushed for organisational change that led to the BBC News front page loading 50% faster on mobile devices (more information here). As my role shifted to include more management responsibility, I focused on growing & supporting the people around me. My goal was always to have a self-sufficient team who worked efficiently together and could resolve conflicts on their own. I spoke and wrote about my transition into a team lead role here.

2013–2014: Rightster | Senior Software Developer

Working closely with product developers and designers, I helped build Rightster's new video distribution platform. This role involved writing a lot of code and co-ordinating feature development with other teams. In between shipping features, I implemented a Git workflow that helped to reduce the chaos of multiple teams working on the same source code. It was this Git workflow that led me to write A Hacker's Guide to Git. It was very satisfying to build a product from the ground up, and to ensure our development practices allowed the team to grow quickly.

2012–2013: Time Inc. UK | Senior Software Developer

At Time I built websites for some of the UK's biggest magazine brands, using complex caching strategies to handle high traffic demands. Here I learnt a myriad of useful software development techniques including programming at the CDN edge, proper change management, automated testing, and data-driven product development.

2007–2012: Various | Software Developer

Software development at various agencies in Christchurch and London. I helped build a tourism booking portal, a buy & sell platform, a real-time racing odds checker, and much more. Let's chat over a coffee if you'd like to learn more about my past work.


Writing

Some of my writings have been circulated through the wider software development community over the years. Here are a few of the most popular pieces:


Open Source

Below are a few of my open source projects. You can find the rest of them on GitHub.

tiny-relative-date

A tiny (800 byte) library that converts absolute dates to relative, human-readable strings. This package is a dependency of npm, and gets 600k weekly downloads.

jekyll-responsive-image

One of the most popular Jekyll plugins, with over 300 stars on GitHub and 100% test coverage.

Second

A framework for server-rendered React apps with delcarative data fetching and opt-in client-side rendering. Many of Second's features are now part of React itself.

Plait

A fast, experimental JavaScript component framework built with functional paradigms and immutable data structures.


Hey, you made it to the end! If you want to know more about me, or you just want to chat, you can find me on Bluesky or GitHub. You could also email me: joseph at wildlyinaccurate dot com.