A little over 5 months ago, I started the next chapter of my career working as a Software Engineer at one of the most creative organisations in the world.

I joined with 3 other new starters into the department and quickly got the opportunity to start working on some really interesting products in a problem-space with a fairly unique set of challenges.

This article aims to give you a little flavour of what it is like to work for the BBC as a Software Engineer and detail some of the things I have been up to over my first few months.

How did I get here?

I graduated from the University of Sheffield with a BSc in Computer Science a few years ago. Following this, I joined a graduate scheme to let me further explore the Software Engineering profession in a comfortable and safe environment where I was encouraged to try new things and learn from industry professionals.

After my graduate scheme I was looking for my next challenge. After seeing a BBC job advert on LinkedIn, speaking with one of the in-house recruitment team, and completing a short take-home coding challenge, I was invited for a half-day assessment centre. The assessment centre gave me the opportunity to tour the BBC offices and really get a feel for the working atmosphere. We got to ask as many questions as we liked and meet current employees working in similar areas to those we’d potentially end up in.

The best thing about the whole process was the speed in which you got feedback from each stage. Within two weeks of submitting my application I had been invited to the assessment centre, and I found out on the day of the assessment centre whether or not I had been offered a place with formal agreements and a contract coming only a few days later!

It’s worth noting, however, that there are lots of different routes that can lead to a Software Engineer role within the BBC. From apprenticeships, work placements, graduate schemes, and our recent Step into Tech scheme. The BBC is one of the best places for people of all different backgrounds and experience levels to come and make a difference.

On my team for example, I work with people with Electrical Engineering, Computer Animation, Psychology, Mechanical Engineering and freelance web developer backgrounds. Having this mix of people is what makes work exciting and what drives ideas for our products and platforms.

Where I work

I work in Salford at the BBC’s large MediaCityUK offices. Working here is interesting because as soon as you get off the tram you find a real buzz about the place that I have only really ever experienced in London before. You know as soon as you get here that this is a place where really interesting and creative work gets done. I’m not sure if it’s the hustle and bustle of the place, or the tall buildings overlooking the plaza, but something about it makes it a pretty special place.

As soon as you step inside the offices, you know you’re within the BBC. Large advertisements for products and shows plaster the walls, celebrating some of the great work that goes on. We’re lucky enough to work in a space that not only looks cool, but promotes collaboration through its open-planned spaces. We operate a hot-desking policy, which means you often get to sit with new people and explore ways in which you can work together. Overhanging signs help point out the different teams making it very easy to approach a set of desks to find specific people or ask a question.

What do we do?

I work on the Content Discovery team within the Design and Engineering department. Our team is responsible for a few products, namely the BBC Homepage, Search and Navigation.

Each of these products, in its own right, is a pretty big deal within the BBC. Navigation controls the navigation bar, footer, cookie banners and other common pieces for most of our online portfolio. The homepage attracts 10 million unique users per week, and Search powers iPlayer, Sounds and our domestic and global navigation, with a reach of 100 million worldwide!

Being in this team means we have the opportunity to work with the whole of Design and Engineering at the BBC. Working alongside colleagues from other product teams to ensure their integrations with us are smooth and flexible.

How do we do it?

I work on a team of around 10 people. It’s a mix of developers, testers, product owners, business analysts and team leads.

We work within an agile environment, meaning we value responding to change rapidly and working with our customers to drive the requirements for our products. It’s a pretty popular way of producing software in the industry, and means we get to adapt the way we work and what we build constantly by assessing what we do and getting feedback regularly.

We also do a regular retrospective which allows the team to look back over the last few weeks and feed back on how we think it went. Having the time to think of new ways to help the team improve is something I really appreciate about working at the BBC. There’s a common drive to be better at how we do things and you can see teams all over trying out new things all the time. This freedom to experiment is a great driver for bettering yourself as a developer and team member.

We also have the flexibility to arrange work around our lives. Core hours means that we have a common time when people are contactable and working. This enables us to also have the option to work from home when we need to, utilising screen sharing for paired programming, instant messaging and conference calls to ensure it’s as close to being in the office as it can be.

What have I done so far?

One of the great things I’ve found about working at the BBC is the pace at which decisions can be made within a team. Already, only a few months in, I’ve managed to get all sorts of things done.

Making changes early on

On my very first day I was able to commit and raise a pull request into one of our code repositories. This wasn’t because I’m some amazing developer or anything like that, it’s because the environment in which we work in allows for it. There is no such thing as a silly idea. Everyone is free to try things and raise their ideas and work to be reviewed, and employees get access to any of the other teams’ code in an inner-source fashion. I am free to read through other peoples’ code, help fix bugs, suggest ideas etc.

Combine this with our collaboration tools where anyone is free to join and create “channels” around teams, projects or general interests, it is very simple and fast to ask questions and get responses from people within the BBC. This sense of togetherness when tackling engineering problems is fantastic and something the BBC has really nailed.

This all meant that within my first week, I had already pushed some code to a live environment and could track the changes through our build and monitoring systems. The feeling of achievement I got from this was immense and really spurs on my day-to-day work. It’s why I, and a lot of my colleagues, are huge believers of lean development cycles.

Learning how to do DevOps the right way

As part of our roles we are expected to follow DevOps where possible. This means that we develop, deploy and monitor all of our own products and tools within the team.

One of the things I’ve really benefitted from at the BBC is the experience people here have to apply appropriate rigour and procedure to the DevOps model. I’ve had interesting sessions on the Goldilocks Zone for monitoring alarms where we discussed how to alert at “just the right point”, and how we, as a team, benefit from active alarms and monitoring. We make extensive use of metrics to measure how our software is performing and allow our cloud infrastructure to automatically respond to changes in user interactions by increasing the amount of traffic or operations we can handle at once.

I’ve also taken part in threat modelling sessions where we’ve analysed potential security threats within our software, and how to mitigate and defend against them. We then worked with the Information Security team within the BBC to improve and iterate on this.

One of the tools we are currently working on is an “Engineering Handbook” much like the ones used by organisations such as GitLab. This is a place where we can discuss ideas on how we want to work as a team, including best practice approaches, and things to remember when working together. This culture of working in the open and allowing people to raise pull requests on the Handbook means everyone is part of the conversation.

Products I’ve worked on

The BBC has millions of items of interesting content to serve to its users. From iPlayer programmes, to Sounds podcasts through your home speaker device to News and Sport articles and Children’s games. The task of ingesting all this metadata, sorting through it and providing it through a relevant and personalised search platform is one of the biggest challenges the BBC has today. This is where the Search team come in. We aim to work with our editorial colleagues to help the audience find the content they love, and also the content they didn’t quite know they loved yet!

Search is a really interesting engineering problem, but couple it with audience and editorial needs, and the requirements of an organisation such as the BBC, and it becomes a fascinating problem to solve. Combining theory with product development is always something I’ve wanted to do, and Search is a great product for that.

Since starting, I’ve managed to touch a fair few different technologies, but the main focus has been microservices using Node.js, autoscaling cloud infrastructure, containerisation, and open source search technologies.

Events and Training

Aside from my day-to-day activities, there has also been various other activities that I’ve been involved with around the BBC. Some of the bigger events were things like Children in Need, where people did fundraising and we even got to meet Pudsey the bear himself.

We also had an off-site away day/team-building event at the Museum of Science and Industry in Manchester where we got to explore finding relevant information in an interactive way. By being given vague search terms of items in the museum, teams had to go around and take pictures or write notes on what they found. It highlighted the gargantuan task that sorting through and finding relevant content can be.

But I’ve also had opportunity to do some learning and training, be it through external trainers, or in-house ones. Some of these have been technical, but a lot of them have been about the softer skills, and improving my understanding of other colleagues and the workplace.

All the training has been fun and engaging. For example, my induction had a Q&A session with Katie Thistleton, a CBBC and Radio 1 presenter, and a senior editor for BBC Sports! And our digital workplace training included videos presented by BBC TV stars such as Angellica Bell and Matt Allwright.

What I’m looking forward to next

Overall, my first few months experience at the BBC has been great. I’ve had the opportunity to work alongside some fantastic people, all with a passion for technology and serving the audience. Being able to have my opinions heard to help drive how we do things makes a real difference to my work life and really inspires me.

Over the next 12 months the Content Discovery team has a lot of plans to radically improve its existing product set, all the while maintaining the good standards and processes we’ve been able to hone. I’m looking forward to experimenting and implementing new ways to engage the audience and attract new younger audiences to BBC content, it’s going to be a tough problem to solve, but something I’m sure the collective minds at the BBC will be able to tackle.

If any of this sounds interesting or something you’d like to do, we’re always on the lookout for new people to join us with fresh ideas from a range of backgrounds and professions. Take a look at our careers web site, Twitter account or LinkedIn page for more information about our vacancies and the various ways you can get in touch.