Senior Software Engineer - Datalab

Job Reference:
BBC/TP/1758130/53758
Number of Positions:
1
Contract Type:
Permanent – Full Time
Contract Details:
Flexible
Salary:
Competitive market salary, excellent benefits, flexible working and world-class training
Working Hours:
35
Closing Date:
08/08/2021
Job Category:
Technology, Systems & Delivery
BBC Region / Division:
Design & Engineering
BBC Business Unit:
D+E: Technology, Strategy & Architecture
Location:
London or Glasgow

Package Description

Band: D
Contract type: Continuing
Location: Flexible - London / Glasgow

We’re happy to discuss flexible working. Please indicate your choice under the flexible working question in the application. There is no obligation to raise this at the application stage but if you wish to do so, you are welcome to. Flexible working will be part of the discussion at offer stage.

  • Excellent career progression – the BBC offers great opportunities for employees to seek new challenges and work in different areas of the organisation.
  • Unrivalled training and development opportunities – our in-house Academy hosts a wide range of internal and external courses and certification.
  • Benefits- We offer a competitive salary package, a flexible 35-hour working week for work-life balance and 26 days (1 of which is a corporation day) with the option to buy an extra 5 days, a defined pension scheme and discounted dental, health care, gym and much more.

The situation regarding the coronavirus outbreak is developing quickly and the BBC is keen to continue to ensure the safety and wellbeing of people across the BBC, while continuing to protect our services. To reduce the risk access to BBC buildings is limited to those essential to our broadcast output. From Wednesday 18th March until further notice all assessments and interviews will be conducted remotely. For more information go to https://www.bbc.co.uk/careers/

Mae’r sefyllfa gyda’r coronafeirws yn datblygu’n gyflym, ac mae’r BBC yn awyddus i barhau i sicrhau diogelwch a lles pobl ar draws y BBC, gan barhau i warchod ein gwasanaethau hefyd. I leihau’r risg, dim ond y bobl sy’n hanfodol i’n hallbwn darlledu fydd yn cael mynediad i adeiladau’r BBC. O ddydd Mercher 18fed Mawrth ymlaen, bydd pob asesiad a chyfweliad yn cael ei gynnal o bell, nes rhoddir gwybod yn wahanol. I gael mwy o wybodaeth, ewch i https://www.bbc.co.uk/careers/

Job Introduction

BBC audiences expect the best content to be available to them in a single place, personalised to their preferences and interests. At the moment this is difficult for us to achieve since our content and audience data is distributed across systems that are hard to connect. We’re also missing metadata about lots of our programmes, which makes them difficult to discover. We’re currently unable to properly engage the next generation of TV license fee payers, many of whom already have less affinity with the BBC than the rest of the UK population.

Datalab was formed to address these issues, by creating a simpler way to discover content. We are doing this by bringing all of our data together into one place, and by using machine learning to enrich it. As we do this, we become able to match our programming with individuals’ interests and context. Our approach is to build a data platform that can be extended by other BBC teams, and which allows many different products to create consistent and relevant experiences for audiences.

Individuals within the Senior Engineer role in Datalab ensure that data pipelines are scalable, repeatable, and secure, and can serve multiple users within the BBC. They help facilitate getting data from a variety of different sources, getting it in the right formats, assuring that it adheres to data quality standards, and assuring that downstream users can get that data quickly. This role usually functions as a core member of an agile team.

In December 2018 we launched the first completely algorithmically driven (but editorially supervised) product in the BBC. While this is an experimental platform with an audience experience that will continue to evolve, it provides an insight into the broader capability we are building.

Our team objectives are:

  1. Make it easy for BBC teams to rapidly develop and deploy Machine Learning engines
  2. Provide great recommendations across multiple BBC products

Main Responsibilities

We are aiming high and have an open brief to define what works best for our audience. We want to stay lean and move quickly to build, test and learn as we go so your contribution will make a difference from day one. We want everyone to feel responsible for our collective success.

You will help us create a data and machine learning environment that can scale to millions of users. You will help integrate new data sources and ensure that the code we write is robust and scalable. You have a keen interest in machine learning (but not necessarily previous experience). You are excited and knowledgeable about a tech stack that includes Google Cloud Platform, Python and Kubernetes with a commitment to micro-services and infrastructure as code.

You’ll engage with engineers working on other BBC apps and services, tapping into the wealth of knowledge and experience of an organisation already serving a vast global audience. Learning is an important part of the role, and you’ll have access to BBC Academy training programmes, along with the opportunity to attend technology conferences and use other resources to progress.

Are you the right candidate?

We would expect you to have experience in establishing data applications into production (ideally in a cloud environment) for millions of users, and also in coaching and managing more junior team members.

You will demonstrate having wide exposure to different data storage systems and/or machine learning algorithms. Experience with model management / algorithmic lifecycle management and involvement in the data engineering community would be strong positives.

We are looking for the following skill sets:

  • Passion for development.
  • Demonstrable experience of writing Python and using associate frameworks.
  • Experience developing APIs (if possible with async experience).
  • Test-driven development approach, the experience of writing unit and functional tests.
  • Experience of writing production code on AWS or GCP, using best CI/CD practices.
  • Experience with DevOps approaches and operational support in cloud environments.
  • Implementing security and recovery tools and techniques as required and building automation tools.
  • Translating stakeholder requirements into technical approaches.
  • Expanding and growing data platform capabilities to solve new data problems and challenges.
  • Helping in building and testing business continuity & disaster recovery procedures per requirements.
  • Spreading the value of data and data science across the wider organisation.

Essential

  • Typically an advanced degree in computer science, computer engineering, other technical discipline, or equivalent work experience.
  • Typically requires 1-3 years of software development or database experience.
  • Familiarity with agile or other rapid application development methods and experience with object-oriented design, coding and testing patterns
  • Good knowledge of key data structures and algorithms and a basic knowledge of machine learning
  • Knowledge of data modelling and understanding of different data structures and their benefits and limitations under particular use cases.
  • Familiarity with monitoring, backup, and disaster recovery of data systems and knowledge in different programming or scripting languages.

Desirable

  • Experience in building and supporting CI/CD processes.
  • Experience in building data streaming systems, ETL scripts and pipelines and data enrichment.
  • Making sure ETL performs optimally and cost effectively.
  • Building accessible data for analysis.
  • Experience with relational database internals, including both query processing and query planning, or other data processing infrastructure
  • Experience with logical and physical database design, designing key and indexing schemes and partitioning.
  • An understanding of how software design relates to overall system architecture.
  • Evaluating and providing feedback on future technologies and new releases/upgrades.

About the BBC

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.

Diversity matters at the BBC. We have a working environment where we value and respect every individual's unique contribution, enabling all of our employees to thrive and achieve their full potential.

We want to attract the broadest range of talented people to be part of the BBC – whether that’s to contribute to our programming or our wide range of non-production roles. The more diverse our workforce, the better able we are to respond to and reflect our audiences in all their diversity. 

We are committed to equality of opportunity and welcome applications from individuals, regardless of age, gender, ethnicity, disability, sexual orientation, gender identity, socio-economic background, religion and/or belief. We will consider flexible working requests for all roles, unless operational requirements prevent otherwise.

To find out more about Diversity and Inclusion at the BBC, please click here