Senior Software Engineer (Media Distribution)
High quality, cost effective distribution of digital media over IP is essential for the continuing success of products from iPlayer to BBC News and Sport, and a key goal for the BBC's technology strategy.
We're looking for experienced engineers to help us design, build and operate the BBC's content delivery platform, incorporating high performance caching appliances and an intelligent control plane.
Join a focused group of engineers working on the technology foundations of the BBC's Design & Engineering division. We are a motivated team with a supportive engineering culture, passionate about the non-functionals.
The Online Technology Group's Engineering team works across on-premises and public cloud platforms. We're clustered around specific domains or groups of products, such as media distribution.
You'll work in a team of four to six engineers and partner with a product manager to define direction and technical approach.
Our method is agile/lean, with an emphasis on the principles underlying continuous improvement and delivery.
Responsibilities of the role include:
- Developing and maintaining the BBC audio/video distribution infrastructure software services.
- Participating in the on-call rota for the software systems the team supports. This will be once every four to six weeks, depending on team size.
- Contributing to the design and architecture of the aforementioned systems.
- Employing software engineering and development best practices.
- Pairing with and mentoring other developers to share knowledge and practices.
The Ideal Candidate
The successful candidate must have:
- Industry experience architecting and developing high throughput (10s of Gbps per machine) or high concurrency (1000s of requests per second per machine) Internet facing applications from inception to production.
- Industry experience writing software in at least two of: (i) Python, (ii) Java, (iii) C, with expertise in at least one of them.
- A strong command of the HTTP specifications and experience writing applications that are HTTP specification compliant.
- Demonstrable experience tuning Internet applications on Linux to improve concurrency and throughput.
- Excellent communication skills and a collaborative attitude.
The ideal candidate will also have at least 3 of the following:
- A strong command of Internet PKI.
- Code contributor to a C, Java or Python open source project. (e.g. Nginx, Linux, Netty, Graphite, ExaBGP)
- Experience with deployment and optimization of SSL/TLS in production.
- Experience debugging the Linux kernel in order to understand specific complex behaviours or uncover defects.
- A strong understanding of the inbuilt tools available in a GNU/Linux environment and an ability to quickly chain them together in POSIX-compliant shell scripts to write utility daemons or to manually test systems.
- Strong understanding of the Internet stack networking protocols and experience working with protocols such as BGP, TCP/IP, DNS (experience working with Unix daemons such as BIRD or ExaBGP would be a plus).
- Experience with large scale load testing practices and tools (e.g. firing 10,000 requests per second at software service for several hours and capturing a detailed set of metrics).
Desirable skills are:
- Experience working with CDNs.
- Experience transitioning to dual stack IPv4/IPv6.
Permanent Full Time
Location: Broadcast Centre, London, W12
About the Company
We don’t focus simply on what we do – we also care how we do it. Our values and the way we behave are important to us. Please make sure you’ve read about our values and behaviours in the document attached below. You’ll be asked questions relating to them as part of your application for this role.
The BBC is committed to building a culturally diverse workforce and therefore strongly encourages applications from underrepresented groups. We are committed to equality of opportunity and welcome applications from individuals, regardless of their background.