Career Progression Framework

Our career progression framework outlines the behaviours and expectations for each level within your discipline, along with example criteria to support each statement. For each level, we expect you to build on top of the previous level’s requirements.

We know that every employee has their own ways of working, so take the examples as a guide. You can use your 1-to-1 meetings with your line manager to align on expectations, so we can support your career development in a way that’s tailored to you.


Junior Software Engineer

You work effectively as a team member, positively collaborating in pairing and other team activities

  • Other team members confirm you are active and engaged during pairing sessions: contributing ideas, asking questions etc.
  • You have formed reasonable working relationships with your fellow team members.
  • You are an active participant at team process meetings for example, stand-up, planning, retro and stakeholder review.

You know the tools/technologies and working practices used by your team, and why these have been chosen

  • You understand the process for bug prioritisation in the team.
  • You are developing judgement on when it is appropriate to work solo or in a pair and rely on your senior team members for guidance.
  • You understand the benefits of the different types of code quality checks your team uses and are learning how to apply your team's code standards.

You can lead on simpler tasks

  • You can drive the completion of a ticket and communicate the implementation of the task to the wider team.
  • You can complete a simpler task without asking for help.

You may be starting to take on small items of ownership within your team, with guidance from others

  • You are working directly with your Product Owner to regularly manage/groom your team's bug backlog.
  • You are monitoring performance dashboards for a specific service, escalating concerns to the team where necessary.

You're pro-active in finding ways to contribute value within your team wherever possible

  • When finished with one task you actively look for your next task, communicating clearly with the team on what you intend to do next.
  • You make useful contributions to team retrospectives with ideas for improvements.
  • During technical design discussions you are engaged and listening. Even if you have difficulty contributing ideas you are asking questions to ensure you understand things correctly.
  • During planning sessions you are contributing to story sizing, asking questions to be sure you are understanding the work correctly.

You understand the basic principles of software development and demonstrate these in your work

  • You are developing an understanding of the ways of working that support Lean delivery and are watchful for waste and inefficiency.

You show commitment to learning and an ability to pick up new skills/concepts quickly

  • With the assistance of your team and manager you identify and prioritise technical areas to learn. You are systematic in your learning and give a focus to areas that will grow your productiveness in your team.
  • When you get blocked on your learning journey you seek support from your team-mates or manager.
  • You feed back learnings to the team.
Software Engineer

You can confidently tackle many of the problems faced by your team without support, although you may still need support with more complex, challenging items or in certain technologies that you don't know so well

  • You can take the lead and provide solid technical solutions to the majority of the tasks in your teams backlog.
  • You are able to lead less experienced members of your team through tasks, delivering them effectively and to a high standard.
  • You provide valuable support to more senior team members in working through a complex technical task, demonstrating an understanding of the problem and ability to contribute effectively when applying the solution.

You are strong enough in some areas to be providing valuable support to others in your team

  • You are able to onboard new starts to your team in several technical areas, explaining technical choices, problem areas and suggest learning materials to assist ramp up.
  • You are the point person, or you take the lead in introducing a particular technology, service, feature or process in your team.
  • You can confidently speak about team activities and goals at a stakeholder review or other similar company-wide meetings.
  • You help guide other team members through work in certain technologies, languages or services, where they are less experienced or confident than you.

You will take ownership of certain tools/systems/ processes within your team

  • You can represent your team confidently in cross-team discussions and initiatives. In some instances you may take responsibility for setting up and running these sessions. Relevant examples include: Game Day load-testing, GDPR data deletion, guilds or working groups etc.
  • You facilitate team ceremonials, e.g. retros, planning, stand-ups, including management of actions.
  • You have a detailed understanding of a feature or area of the codebase that has allowed you to take ownership of it, identifying and documenting tech debt, onboarding others to the codebase etc.
  • You have successfully presented on topics to a wider audience (i.e. beyond your team), e.g. stakeholder reviews, Friday Demos, Engineering All-Hands.

You consider the long-term view when delivering a task, through consistent application of engineering good practice

  • When beginning a new task you lead conversation on testing approach, requirements for logging, monitoring, alerting, documentation, to ensure code is robust, resilient and can be understood by others.
  • You show evidence that you are considering long-term scalability of a feature or application that you're designing, but avoid unnecessary gold-plating.
  • You look for opportunities to reduce tech debt and incrementally improve the codebase when making changes to an existing project, even if those improvements are not strictly required as part of the task you're working on.

You actively identify ways your team might improve, and help implement those ideas

  • You suggest improvements to process at retrospectives and post mortems and help the team apply the relevant changes, or you take the ideas of others and look for ways to apply the corresponding actions.
  • You use the 20% "true north" time to identify technical debt and drive the team to tackle the debt.
  • You are monitoring performance dashboards, raising concerns, or areas for potential optimization with your team.
  • You identify opportunities to optimise or improve services or areas of the codebase that align with your learning objectives, and use learning time to progress with this work.

You're consistently making valuable contributions to all aspects of team discussion

  • You show willingness to ask difficult questions and challenge opinions.
  • You provide input during planning and ticket estimation, e.g. clarifying areas of potential complexity, asking relevant questions, answering others questions etc.
  • During pairing/mobbing sessions, you communicate clearly, putting forward ideas, challenging the thoughts of others and asking questions to show you are engaged and understanding the work and to help deliver the best possible outcome.
  • You are active in responding to questions put to your team from outside, e.g. from other delivery teams, from CS etc.
Senior Software Engineer

You can lead confidently in tackling some of the most complex or challenging technical problems faced by your team, from design and planning to implementation

  • Implementing a new service that enforces quality standards.
  • Taking a leading role in forming an architectural proposal to find an effective way of solving a complex technical problem.
  • Taking a leading role in supporting the breakdown of a feature, epic or project sensibly into a well-defined backlog of small tasks or user stories.
  • Leading white-boarding sessions to propose or refine technical designs.
  • Taking a leading role in planning for delivery milestones, delivering often so as to avoid big-bangs.

You are an evangelist for consistent high-quality and efficient delivery within your team

  • You champion the use of instrumentation, monitoring and alerting within the team.
  • You promote a consistent approach to testing within your team.
  • You provide reasoned opinion to help shape your teams approach to code quality, coding standards etc.

You look beyond short-term deliverables, helping the team manage their long-term responsibilities

  • In pairing sessions you mentor your engineering partner to think wider than the scope of the ticket. ("Have you considered..." or "what about..." type of questions).
  • When building an MVP or experiment you ensure visibility of the work required to fully productionise the feature and work with the PO to build it into the teams backlog.
  • You support the refinement of the teams technical roadmap/backlog, adding items to the backlog, leading discussion of priorities etc.

You're likely to have ownership of various tools/systems/ processes within your team

  • You take a lead role in ensuring on-going load or chaos testing of critical services owned by your team.
  • You take ownership of maintaining and monitoring your teams performance dashboards, and feeding back potential improvements/concerns to the team.
  • You lead regular sessions with your team to discuss coding standards, with a view to maintaining quality and consistency in your teams code.

You help others to deliver more value by sharing your expertise in certain technologies/processes

  • You mentor less experienced, or more junior members of your team in technologies you're strong in.
  • You share knowledge in specific areas through team demos, brown bags, leading mob programming sessions etc.
  • You take a lead role in documenting and sharing architectural designs and support other team members, and those outside your team, in understanding why certain architectural decisions were taken.
  • You represent your team in sessions with external partners, helping assess requirements, providing input,asking questions etc.

You are a trusted influencer within your team and regularly use this position to positively impact the team

  • You help drive effective retrospectives by raising issues and proposing meaningful actions.
  • You put forward a persuasive case for the use of a specific technology to solve a problem effectively.
  • You encourage others to adopt the coding standards and development best practices by helping them to identify improvements to their code.
  • You regularly check on the situation for blocked tickets and help to unblock them by working with engineers within your team, stakeholders, and other teams.

You're supporting the growth and development of your team, and individuals inside, or outside your team

  • You actively participate in the recruitment process, assisting and possibly leading interviews to find new team members with the required skills/experience/potential.
  • You support the onboarding of new team members, buddying them through their initial set-up, introducing them to the domain and tech-stack and guiding them through their first tasks.
  • You share the results of your learning time and encourage and support others in making the most of theirs.
Principal Software Engineer

You can lead a team confidently through all phases of any project or initiative they are assigned to

  • You can take a difficult technical challenge and efficiently lead a team through the design phase, drive decision-making, support the creation of a backlog and lead the team confidently into the implementation phase.
  • You can confidently lead on the creation of architectural proposals and refine these designs based on feedback.
  • You are able to support Product and Management with the production of project-level estimates/timelines.
  • You can solve technical problems and lead the successful implementation of tasks others on your team may struggle with.

You'll be a go-to person, across the wider engineering team and beyond, for certain technologies/processes and helping solve the most challenging problems

  • You provide support to help a team solve a specific challenge which they're struggling with, in a domain or technology in which you have particular knowledge.
  • You provide insightful feedback to architectural proposals, helping teams shape their ideas/designs.
  • You drive the steps to migrate away from legacy unsupported software to robust supported services in a micro-service architecture.

You can identify even more complex problems, at a team or organisational level, propose solutions and take a lead role in ensuring appropriate action is taken

  • You are aware of a problem in a service not owned by you or your team, but you do have a potential solution in mind. You work with the owning team to implement that solution.
  • Identifying a gap in a team's processes, e.g. with regards to code review, testing, alerting, issues with sub-optimal queries etc. and proposing a solution, potentially involving introduction of a new technology, tool or practice to drive the required improvement.

You are ensuring all tools/systems/ processes important to the work of your team are being actively owned within the team

  • You take action to monitor the state of all services your team owns, e.g. reviewing the state of documentation, dashboards, alerts, service performance etc. This may involve you delegating responsibility for services to others within the team, but you are actively ensuring the team's responsibilities are being managed.
  • You are working with Product, Design and other stakeholders to ensure they are getting the engineering support they need, e.g. grooming backlog, ticket refinement, estimations etc.
  • You are taking action to improve specific practices within your team, e.g. improving test coverage through mentoring, addition of test libraries/frameworks, documenting testing guidelines etc.
  • You are active in managing technical debt within the services and platforms owned by your team. You may work with the PO to ensure necessary work to optimise and improve these areas is being prioritised.
  • You ensure remedial work coming out of incident post-mortems is being prioritised and implemented according to required timelines.

You help ensure your team is focused on delivering against stakeholder expectations and can communicate confidently with stakeholders when needed

  • You support the PO in defining epic or project-level estimations, tracking progress against those estimates over time and communicating with stakeholders on progress over time.
  • You represent FMP in meetings to support our largest external partnerships or when assessing potential future partners, acting as a technical expert, providing guidance and asking probing questions.
  • Where there's a risk of your team missing estimated timelines for delivery, you work with stakeholders to identify opportunities to cut scope or reduce the workload to increase the chances of delivering as much value as possible to the original timeline.

You'll play an important role in defining long-term technical strategy at team level, and sometimes in a wider context

  • You are actively managing your team's technical roadmap, ensuring it's up-to-date and shared with Product and other stakeholders to build critical technical work into the overall team roadmap alongside Product work.
  • You work to ensure your area of the platform is well-maintained and future-proofed. This may involve leading discussions/ workshops with your team (and other experts) to refine technical plans.

You'll be supporting the development of others, at any level, within or outside your team

  • You are mentoring one or more engineers in technologies you are strong in.
  • You are regularly working with less experienced engineers on complex tasks, helping them learn through practical experience.
  • You share your learnings, using suitable means to do so: e.g. team-wide learning demos, discourse post, tech blog post etc.

Your learning will include a focus on advanced specialism and latest developments in particular technologies

  • Learnings will focus on areas not currently used by your team but which offer potential strategic value in terms of delivering on the long-term roadmap of the team.
  • You have developed working knowledge in an area outside of the core platform/tech-stack in order to deliver an effective solution to an important business problem, e.g. ML/AI techniques, AWS/cloud technologies etc.
  • Your skill-level in a valued specialism makes you a go-to person to support complex work in that area, e.g. CSS/HTML, Database Administration, Kubernetes, and you work to maintain your expertise in that area.


Junior Product Manager

You work effectively with your team, creating a steady flow of prioritised work

  • You are aware of the Agile roles, processes and mindsets, through formal training or experience.
  • You can keep pace with a small agile team by planning ahead.
  • You learn from your mistakes through assessing outcomes and documenting learnings.

You know the fundamental structure of product management

  • You understand the range of product management principles and approaches through formal training and experience.
  • You can take stock and manage your backlog, prioritise effectively and select sprint goals.
  • You can lead feature demos of new initiatives outlining the purpose, goal and success metrics.

You are focused on the customer and lead on creating value for the people using the product

  • You can carry out competitive analysis to understand their respective strengths and weaknesses.
  • You are able to prepare stimulus and questions for user testing and research.
  • You have the ability to perform the necessary market research work to test your ideas and assumptions.
  • You monitor your customer data to better understand your problem space.

You investigate the data gathered, learn from it, and use the new knowledge to create a successful product

  • During your product discovery you identified and investigate problems.
  • During validation you test the appropriate aspects of your product and collect the relevant feedback and data.
  • You propose a solution to a problem outlining the approach and customer benefits.
Product Manager

You are confident to lead an agile team of engineers and designers without support and successfully manage your stakeholders expectations

  • You lead product discovery and provide visibility of how your product will evolve.
  • You create close, established and trustful connections with key stakeholders, collaborate with them, and involve them in important product decisions on a regular basis.
  • You proactively communicate progress and challenges through regular touchpoints and reviews.
  • You have a growth mindset in taking feedback with the aim to improve and further develop.

You take ownership of a specific area of product and provide valuable support to others around the business in your focused area

  • The product decisions you make are based on data and evidence.
  • You create high quality effective user stories from the perspective of customers and users.
  • You confidently build a 90-180 day product roadmap that aligns stakeholders and communicate the product's evolution.
  • You use various product techniques to propose and quantify the value proposition of a new feature or product.

You are consistent in championing the customer and finding the alignment to the business goals.

  • Your market research evaluates competitors and derives market insight.
  • You identify your target users and customers, and segment your market.
  • You lead on discovery with design and UI to bring customer hypothesis to life for user testing and validation.
  • You consistently monitor customer data and identify patterns and propose hypothesis.

You consider the longer term impact of features and products you are building and the returns they may deliver

  • When correlating data, you formulate realistic goals (benefits), metrics and key performance indicators (KPIs) and convert these to objectives.
  • You comfortably use data and product dashboards to identify customer problems and product opportunities.
  • Aligning to business goals, you build return of investment (ROI) models on features or products.
Senior Product Manager

You can lead an agile team confidently and contribute to the success and growth of your team

  • You comfortably and consistently review and iterate your agile team to optimise performance.
  • You consistently determine the primary success factor for a major release or product, and steer the development of the project through continual cross functional steering reviews.
  • You confidently pattern agile and lean best practices supporting those around you.

You can lead on both on the strategy of your area and evolution of the product, leading on challenging conversations and influencing your stakeholders

  • You effectively communicate with and influence your stakeholders through effective and factual presentations.
  • The roadmap you create clearly demonstrates the relations between the product strategy and the product evolution.
  • You formulate and prioritise business goals, and translate these into team objectives.
  • You deliver presentations at executive level that effectively manage and communicate your strategy or progress.

You have a sincere and consistent customer-centricity that you evangelise and communicate to your peers and stakeholders.

  • You choose fit for purpose customer insight methodologies from the available range.
  • You are confident with the use of the analytics tools to retrieve the relevant data and are able to critically analyse it effectively.
  • In research you harness customer insight to influence and inspire teams around you.

You help others better understand the insight to support business decision and provide valuable contribution towards the business goals

  • You are able to describe how your product's value proposition is monetised and capture how the business model works to support the business revenue goals.
  • You have built data insight dashboards and models to monitor, guide and provide insight into product performance.
Principal Product Manager

You are a leader across multiple features or products with an advanced understanding of the different stages of the product Lifecyle and it's key events, including launch, product-market-fit, go to market and end of life.

  • You build and lead strong, collaborative relationships with cross-functional teams in technology and marketing.
  • You are a competent partner to engineering and have an interest in software technologies.
  • You do not shy away from making the right decisions even if they are tough and do not please everyone.

You lead the creation and inception of new strategies, building business and peer buy-in, direction and value proposition, ensuring you clearly articulate the alignment to the business strategy

  • You establish a shared vision, set realistic goals across multiple products in the market. The single view roadmap you create aligns more than one product including the formulation of go-to-market strategies.
  • You strive to improve processes and working practices, balancing costs and benefits when evaluating possible solutions.
  • You provide support to the more juniors members of the team guiding them on approach, process and helping to solve the most challenging problems.
  • You are a business go-to-person in your area of expertise and often support teams across the business in their challenges.

You champion the customer, driving and supporting a broad range of workshops across the business, ensuring data is leading decision making and direction

  • You confidently differentiate customer behaviours and needs by channel and device.
  • You have an obsession with understanding customer needs and pain points, and strive to deliver better.
  • You lead company wide product demos, solution interviews, usability tests, A/B tests and direct observations.

You relentlessly measure and communicate value created to all stakeholders, all of the time, looking to always advance the business' knowledge of the customer

  • You utilise a variety of analytical tools and methodologies to support decisions and direction.
  • You work directly with a finance partner to create a financial forecast or business case that describes when a break-even is likely to occur and when your product may become profitable.