Overview

Role Context

Media Services is the team responsible for publishing all of the BBC’s online audio and video content, powering iPlayer, iPlayer Radio, News and Sport. We handle live content, “catch-up”, and podcasts.

iPlayer supports over 1000 different devices, including PCs, phones, tablets, games consoles, and smart TVs. The iPlayer and iPlayer Radio apps are installed on over 30 million phones and tablets, and we handle 13 million plays per day. Every day we ingest and publish over 1000 hours of catchup content, and publish 3-4TB of new files.

We make programmes available using a range of the latest streaming technologies, providing the best possible playback across multiple platforms and devices. All of this adds up to a high-profile, large-scale product with a fast-moving development environment.

We are looking to recruit talented software engineers to join the team, helping us to continue to build the audio and video processing systems that power BBC online media, so our audience can continue to enjoy iPlayer.

The Ideal Candidate

You will have a passion for software and technical innovation, and enjoy being involved in the complete lifecycle from project scoping through to implementation, testing and ongoing maintenance. We are looking for engineers who able to design and implement solutions utilising a variety of technologies, frameworks and platforms in order to deliver industry-leading solutions. You should have an appreciation of BBC output and a passion for technology in the new media environment.

Role Responsibility

Key responsibilities of the Software Engineer will include:

To design, develop and support products and services that publish the BBC’s audio and video content online. This includes:

  • Designing and developing software and API’s for use across the BBC.
  • Writing unit and integration tests, within automated test driven environments to ensure code quality.
  • Reviewing the work of other team members and providing assistance as required.
  • Writing clear, concise and comprehensive technical documentation.
  • Keeping abreast of new technologies which can be used to enhance the way we publish and deliver our audio and video content.

The Ideal Candidate

Essential:

We are looking for engineers who:

  • Have the ability to rapidly acquire new software skills and work with new technologies.
  • Can work as part of a development team or on their own depending on size of project.
  • Are comfortable working in a Unix-like environment.
  • Are competent programming in a modern, structured programming language.
  • Have experience using build tools (e.g. Maven) and continuous integration tools (e.g. Jenkins);
  • Have experience of source control systems (e.g. SVN, Git), bug tracking tools (e.g. Jira) and Wikis.

Desirable:

  • Experience with any/all of: Java (7 or later), Ruby, Javascript (both node.js and web browser).
  • Experience with XML and JSON.
  • Experience with cloud computing, especially Amazon Web Services (Lambda, EC2, SQS, SNS, S3, Cloudformation, Autoscaling).
  • Experience with NoSQL databases and caches (SimpleDB, DynamoDB, Redis).
  • Experience of Test-Driven Development (mockito, junit, rspec).
  • Experience of using Continuous Delivery.
  • Experience with Microservice architectures.
  • Experience with asynchronous messaging systems and integration patterns (Apache Camel).
  • A solid grounding of object orientated programming and good understanding of design patterns.
  • An ability to understand and translate product and business requirements into technical solutions.
  • Experience with building scalable and serviceable systems. Desirable
  • Experience of audio and video formats, protocols and standards (eg. HLS, HDS, MPEG4, MPEG DASH).
  • Experience working in Agile teams.
  • Experience of pair programming.
  • Experience using Behaviour-Driven Development (gherkin, cucumber).
  • Experience using Docker.

Tagged as: Java, spring/hibernate, unix/linux, web services