Introduction to Software Engineers 

MI5 is reliant on technology to keep our business running.  Whether it’s systems that enable us to run investigations, analyse data or support live operations, we need dedicated and talented software engineers to ensure we build the right tools for the job.  Our teams work predominantly to agile methodologies, responsible for the design, implementation and operation of the products they own.  We use a broad spectrum of different technologies, with most applications written in predominantly Java or C# for back end processing and using JavaScript to provide responsive and intuitive user interfaces.  Whether you’re a full stack engineer or more specialised in a particular technology, it’s likely we have a role for you.  We work closely with our customers to understand their business, delivering software that really helps to make their challenging day-to-day jobs easier and keeps the country safe.

Learning and Development

Our learning and development opportunities are second to none.  We pride ourselves on the time we set aside for our engineers to develop.  And not just their technical skills either; we put emphasis on developing soft skills and management too.  The opportunity to move between teams over the course of your career allows for exposure to different technologies and areas of our unique and interesting business.  We support accreditation of skills through bodies such as the BCS and IET, encouraging engineers to aspire to Chartered Engineer status or other qualifications.  Whatever grade or role, we look to our staff to mentor and develop their more junior colleagues, either informally within teams or more formally as line managers.

Whilst much of our work is necessarily secret, our career framework doesn't have to be. It's vitally important that our existing staff and prospective new joiners understand how they fit into our organisation and what their career prospects could be.

Having a clear career path for our engineers is key to our proud record of investing in our staff. We want all our colleagues to be able to see how they can progress into more senior roles and understand what they have to do in order to get there. What’s also really important is that you can hold more senior roles while remaining hands-on. We recognise that there are different types of engineering leadership; some will be more focussed on coaching teams and individuals whereas others will be recognised experts in their chosen technical specialism.

We use the Government’s Digital, Data and Technology (DDaT) capability framework for Software Engineers to describe our career offering. This provides a clear description of the different types of engineering roles and the skills required to perform at each level. Progression is dependent on being able to demonstrate both the core competencies required for the grade and the technical proficiency as outlined in the capability framework.

Apprentice Engineer

Our Apprentice Engineers are at the very start of their careers, undertaking a sponsored degree apprenticeship which sees them spend time in the classroom with our selected apprenticeship provider and then develop their skills on the job as part of our engineering teams. Subject to continuing good performance, automatic advancement to Junior Engineer is possible during the scheme.

Junior Engineer

Junior Engineers learn predominantly on the job, working with other engineers on their team to help deliver user stories. They take ownership for small features, under the supervision of a more senior engineer who can provide support and guidance. Junior Engineers are able to write and test their code but may need assistance with other non-functional areas such as security.

Associate Engineer

Engineers will take responsibility for delivering component features of their team’s projects. They follow best practice guidelines, designing the best solution with user needs at the heart of what they do. They build, test and deploy their features and take responsibility for non-functional requirements with support from seniors. Coaching and mentoring become more important at this level, with Engineers being expected to support the Juniors and Apprentices they work with.

Senior Engineer

Senior Engineers take leading roles in a product team, owning the delivery for related sets of stories that come together to form a service. A full understanding of the team’s products and services is important so that the Senior Engineers can see the bigger picture and ensure that everything the team is building will come together. They work with other delivery areas and customers to understand what the team needs to deliver, taking responsibility for the products and services running production. Senior Engineers also look to improve the non-functional requirements of their products, focussing on areas such as stability, robustness and resilience.

Lead Engineer

Lead Engineers come in a number of different guises. Some will be responsible for leading the development for a small number of teams, guiding their work and supporting technical decision making using their own experience. Others take responsibility for a particular technical specialism, setting out standards, providing guidance and promoting best practice. In all cases, Lead Engineers have broad technical proficiency with experience of delivering software across multiple technology stacks.

Principal Engineer

The most senior software engineer in our career ladder, Principals will either be experts in a number of technical areas of have a very deep specialism in one area. As with Lead Engineers, there are different types of Principal Engineer roles. In the delivery areas, Principal Engineers plan and lead the engineering of multiple teams, working with other engineering disciplines to ensure that our team teams are working as efficiently as possible. On the people side, Principle Engineers will be responsible for coaching and mentoring, supporting career development and leading on recruitment.

Technology is at the heart of MI5

Working Environment

It’s an exciting environment and the work is critical, however our offices are relaxed and friendly.  Ensuring that everyone maintains a sensible work-life balance is critical to our success.  Our engineers work standard weekday office hours and whilst there are opportunities for working on-call and providing out of hours support, we work carefully to ensure that this is balanced fairly across members of our teams.

If you are interested in joining our expanding engineering section, helping to drive change and improvement that enables us to keep up with the fast pace of our business, we are currently recruiting for junior and senior software engineers. 


SOS image of puzzle

Can you solve this puzzle?

Intelligence isn't always obvious and our engineers and analysts work hard to unlock it.

There's a clue in the image file, if you can find it.