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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
Delivers high quality code and solutions
Examples:
- Refactors solutions to improve clarity and maintainability
Proficiency: Working knowledge
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
Delivery
Prioritises technical work for the team (usually with others)
Proficiency: Working knowledge
Help/feedback
Breaks down large complex technical proposals into discrete tasks
Examples:
- Creates the user stories for the ticket with a delivery lead
Proficiency: Working knowledge
Help/feedback
Communicates team/work’s status upwards to a Principal or Technical Director
Proficiency: Working knowledge
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
Manages, prioritises and communicates own workload
Proficiency: Working knowledge
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback
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
Help/feedback