BBC iPlayer, Contract
CLIENT
BBC iPlayer
London, UK (Remote)
TECHNOLOGIES
AWS · TypeScript · React
Redux · Node.js
Jest · Playwright
SERVICES
Front-End Feature Delivery
AWS Infrastructure & CI/CD
TypeScript Modernisation
DATE
Aug 1, 2024
BBC iPlayer, Contract Software Engineer
Overview
Contract engagement with BBC iPlayer Web, one of the UK's highest-traffic digital platforms serving tens of millions of users. Worked across front-end feature delivery, AWS infrastructure, and CI/CD within an agile team of eight engineers.
Duration: August 2024 – March 2026
Stack: AWS · TypeScript · React · Redux · Node.js · Jest · Playwright
Team: 8 engineers, Scrum
Front-End Feature Delivery
Delivered and maintained production features across high-traffic /iplayer/**/* routes supporting millions of users. Work focused on building reusable, scalable TSX components to improve UI consistency and development efficiency across the platform.
// Reusable component pattern — typed props, single responsibility
interface MediaCardProps {
title: string;
imageUrl: string;
duration: string;
isAvailable: boolean;
}
const MediaCard = ({ title, imageUrl, duration, isAvailable }: MediaCardProps) => (
<article className={`media-card ${!isAvailable ? 'media-card--unavailable' : ''}`}>
<img src={imageUrl} alt={title} loading="lazy" />
<h3>{title}</h3>
<span>{duration}</span>
</article>
);Testing & Reliability
Increased platform reliability through comprehensive unit and integration test coverage using Jest and Playwright, including route behaviour and performance budgets across live, high-traffic routes. Resolved production issues and improved page performance through proactive bug fixing and optimisation.
AWS Infrastructure
Delivered AWS improvements using Lambda and EventBridge, optimising resource policies and enforcing least-privilege IAM access. Infrastructure was defined in TypeScript using AWS CDK and CloudFormation, enabling reproducible, peer-reviewable deployments with no manual console configuration.
// Least-privilege IAM — EventBridge as invoking principal
const lambdaPermission = new lambda.CfnPermission(this, 'EventBridgeInvokePermission', {
action: 'lambda:InvokeFunction',
functionName: targetFn.functionName,
principal: 'events.amazonaws.com',
sourceArn: rule.ruleArn,
});CI/CD Pipeline
Implemented CI/CD using AWS CodePipeline and CodeBuild. Pipelines provided automated build, test, and deployment stages across environments, enabling small, frequent releases with consistent quality gates.
Collaboration
Worked within a Scrum team of eight, contributing to sprint planning, code reviews, and technical decisions alongside senior engineers. Communicated trade-offs and delivery progress clearly across the team throughout the engagement.
Outcomes
- Production features delivered across high-traffic
/iplayer/**/*routes serving millions of users - Reusable TSX component library improved UI consistency and development speed
- Comprehensive Jest and Playwright coverage maintained across production routes
- Lambda resource policies tightened with least-privilege IAM and EventBridge integration
- Infrastructure defined as typed CDK code, repeatable and fully peer-reviewable
- CI/CD pipelines via CodePipeline and CodeBuild enabled reliable, automated deployments
