Senior Engineer 1

The competencies for Senior Engineer 1 in Engineering are outlined below. Before reviewing them, it is helpful to review how to use these competencies.

Technical

Builds products ensuring they take adequate steps to protect sensitive data

Examples:

  • Databases have encryption at rest
  • Sensitive data is masked or in restricted indexes in Splunk
  • Data is retained only for as long as it is needed
  • Dummy/fictional data is used in staging environments and in tests
  • Suppliers don't get access to data unless they have gone through the Procurement Management Application process

Proficiency: Working knowledge

Implements appropriate observability and monitoring when building a solution

Examples:

  • When adding a new dependency to a system, adds a healthcheck to monitor the dependency's state
  • Adds logging that is well-structured and captures useful information about the state of a system
  • Builds a Grafana dashboard that visualises normal and abnormal operation of a system

Proficiency: Working knowledge

Evaluates third-party software to use in projects

Examples:

  • Can choose between similar Node libraries evaluating code quality, ease of integration, future maintenance, and security concerns
  • May be involved in evaluating paid-for third party supplier code

Proficiency: Working knowledge

Leads on fixing live incidents in production

Examples:

  • Takes proactive action when an incident is reported on a system they support and resolves it satisfactorily
  • Responds to critical issues raised in #ft-tech-incidents taking the initiative to fix them and reports back

Proficiency: Working knowledge

Understands the security attack vectors for their area of technology and mitigates against them

Examples:

  • Uses Snyk.io on projects
  • Sanitises user input to mitigate against XSS attacks
  • Applies security patches to an operating system
  • Protecting public API endpoints
  • Articulates security risks/benefits when evaluating third party software
  • Uses Fastly WAF to protect from malicious requests

Proficiency: Working knowledge

Makes pragmatic decisions about technical trade-offs within their project

Examples:

  • Knows when to stop work on a feature that has fulfilled the requirements vs. spending an extra week on making it perfect but delivering little additional value
  • When pressed for time, focuses on ensuring test coverage of the most critical system functionality
  • Manages technical debt, understands consequences of technical debt vs the cost of fixing it and acts accordingly
  • Can explain when something is worth refactoring even when it will impact the speed of delivery

Proficiency: Working knowledge

Delivers high quality code and solutions

Examples:

  • Refactors solutions to improve clarity and maintainability

Proficiency: Working knowledge

Encourages others to deliver high quality code and solutions

Examples:

  • Implements tooling to enforce high standards
  • Reviews pull requests fairly & critically in such away that team members produce better code

Proficiency: Working knowledge

Regularly and independently debugs and fixes bugs regardless of origin

Examples:

  • Picks up and debugs an urgent issue that comes in to the team, despite having not written the code originally

Proficiency: Working knowledge

Builds software or services considering resilience, performance and failure modes

Examples:

  • Combines multiple data sources in a feature, caching, polling etc as appropriate to cope with problems in downstream services
  • Adds healthchecks to a system that detect different ways in which it can fail

Proficiency: Working knowledge

Chooses the appropriate tool, technology or software for a task

Examples:

  • If starting a new project, uses tools already understood by the team unless there is an agreed good reason to change

Proficiency: Working knowledge

Builds and works with systems involving multiple, independent technical parts

Examples:

  • Adds data sources to or optimises performance of a data pipeline
  • Publishes a new origami component that uses other components
  • Implements a CDN / gateway that routes to a suite of underlying microservices
  • Designs and implements a build pipeline

Proficiency: Working knowledge

Considers the technical direction of their group or the wider department when coming up with technical solutions

Examples:

  • Understands how their work feeds into their group's tech strategy
  • Can articulate and justify the total cost of ownership of their technical solutions
  • Follows their group's Engineering Principles when building technical solutions

Proficiency: Working knowledge

Communication

Communicates technical concepts clearly and adapts that communication to the audience

Examples:

  • Explains their work in standups knowing which technical details to leave out to make the message meaningful to everyone in the room
  • Teaches more junior engineers
  • Creates diagrams to document how the different parts of systems interact
  • Presents their own work clearly to stakeholders

Proficiency: Working knowledge

Facilitates productive discussions with clear outcomes

Examples:

  • Runs meetings with clear agendas and outcomes
  • Obtains wide feedback on technical proposals and takes ownership of seeing it through

Proficiency: Working knowledge

Contributes to hiring process

Examples:

  • Participates in hiring panels or technical interviews
  • Attends recruitment events
  • Publicly shares links to open roles
  • Goes for coffee with potential hires to talk about what working at the Financial Times is like
  • Shares our work publicly, (through blogging, speaking, etc) to show the kinds of work we do here
  • Reviews CVs
  • Reviews tech tests

Proficiency: Working knowledge

Delivery

Prioritises technical work for the team (usually with others)

Proficiency: Working knowledge

Breaks down large complex technical proposals into discrete tasks

Examples:

  • Creates the user stories for the ticket with a delivery lead

Proficiency: Working knowledge

Communicates team/work’s status upwards to a Principal or Technical Director

Proficiency: Working knowledge

Where appropriate, builds on other teams’ work to solve problems

Examples:

  • Uses origami components to style a web page
  • Uses Biz Ops as a source of system data rather than creating a new system registry

Proficiency: Working knowledge

Moves blockers to enable more junior engineers to work

Examples:

  • Reviews pull requests
  • Suggests someone to talk to eg “[X] knows the most about [technology Y], you could ask them”

Proficiency: Working knowledge

Tackles simple cross team technical issues

Examples:

  • Notices a tool used by lots of teams has broken, identifies the problem and fixes (or reports it to the owner of the tool)

Proficiency: Working knowledge

Actively seeks the views of other teams to help guide work

Examples:

  • Attends cross team meetings
  • Asks other teams for input and opinions on decisions that affect them

Proficiency: Working knowledge

Improves delivery process and encourages others to do the same

Examples:

  • Updates the scrum process to fit the changing needs of the team
  • Champions technical issues that affect delivery such as release cycles, dealing with tech debt and bug fixes
  • Encourages other engineers to participate in agile team rituals

Proficiency: Working knowledge

Manages, prioritises and communicates own workload

Proficiency: Working knowledge

Leadership

Influences a community of practice

Examples:

  • Is an active member of a Guild
  • Answers questions in the #engineering Slack channel
  • Gives a tech talk (internally or externally)
  • Writes a blog post
  • Shares industry relevant content/links with team members that may be interested

Proficiency: Working knowledge

Is an ambassador for their team across FT technology

Examples:

  • Positively represents their team in interactions with other people by seeking to understand their perspectives, values and needs
  • Consistently contributes to their team being positively perceived by stakeholders (or by other engineering teams to which they provide support)

Proficiency: Working knowledge

Contributes to the personal development of more junior people

Examples:

  • Is a line manager or mentor
  • Is a designated buddy to a new starter
  • Regularly meets up with more junior peers to provide guidance
  • Pairs with more junior team members
  • Writes blog posts to share knowledge
  • Gives talks at meet-ups or conferences to share knowledge

Proficiency: Working knowledge

Shows technical leadership

Examples:

  • Is a tech lead
  • Runs, or is on the organising team for a Guild
  • Leads on large features, stories or projects

Proficiency: Working knowledge

Shares knowledge with others internally

Examples:

  • Gives a workshop on Git
  • Runs a regular 101 session for the rest of the business
  • More informal knowledge sharing through mentorship

Proficiency: Working knowledge

Actively fosters an inclusive team culture

Examples:

  • Celebrates good work publicly and encourages the team to do the same
  • Spots problems between team members and helps to resolve them or escalate them as appropriate
  • Models inclusive behaviour to the rest of the team

Proficiency: Working knowledge