Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
781 lines (682 sloc) 25 KB
# Junior to Mid, Technical
- id: 4029f7b4-0c42-4867-818b-c03049a07de1
summary: Is responsible for and maintains their local development environment
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: 297576d0-c20c-4498-8d53-b00ef9bbe48b
summary: Uses version control to manage development workflow
examples:
- "Git specific example: clone, branch, add, commit, push, rebase"
description: null
level: junior-to-mid
area: technical
domain: null
- id: 574c234d-b52e-4765-b160-bac958e2d207
summary: Uses a programming language to make something
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: 4db41452-c2c7-40bf-87b1-a2d8ed6f902a
summary: Writes automated unit and end to end tests for features
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: 2385d7ee-64c1-45de-b1d9-18050fba9d44
summary: Fixes or updates tests when changing existing code
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: 22c2a49e-4e2e-4a63-a09e-57a0efce7e38
summary: Learns and improves independently
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: f66d122f-bd81-4b57-8b4a-78f00a11934c
summary: Uses third party code and shared libraries to reuse code
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: b0e285f2-08a3-47c2-a810-30d5258e1863
summary: Regularly fixes security issues raised by others (or raised by automation) in own code
examples:
- Fixes vulnerabilities in dependencies raised by Snyk
- Fixes vulnerabilities raised by the cyber security team
description: null
level: junior-to-mid
area: technical
domain: null
- id: e566bfce-9390-47ea-9e46-f1db25ae9cc0
summary: Regularly and independently debugs and fixes bugs in their own code
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: 9b30c5f3-7925-4514-9f31-251b32daf1d3
summary: Gets involved in fixing production issues
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: e4cd2032-2974-42ba-ac74-565809069447
summary: Uses continuous delivery or build pipelines for automation
examples: []
description: null
level: junior-to-mid
area: technical
domain: null
- id: b24b7fe3-3c4f-4fb0-b2b4-ba8c43806701
summary: Uses monitoring (but doesn't necessarily implement monitoring)
examples:
- Pingdom, grafana
description: null
level: junior-to-mid
area: technical
domain: null
- id: 09066401-3dab-499f-a91f-dbbf5e19bdd8
summary: Reasons about technical trade-offs within their own code
examples:
- Weighs up the benefits of making code more abstract vs specific
- Reasons about making an API call from the client or from the server - it's easier from the client but core experience will be worse
description: null
level: junior-to-mid
area: technical
domain: null
# Junior to Mid, Communication
- id: 6a019e95-20ab-4af5-a42a-727274eec0d8
summary: Maintains documentation on the systems they work on, making it easy for future engineers to interact with systems and code
examples:
- Writes READMEs with the appropriate level of detail for getting the project set up
- Documents common issues with the codebase in a troubleshooting section in the README
- Finds some documentation they are reading is out of date so opens a Pull Request to improve it
- Writes good commit messages that explain why a change was made
- Puts line comments around any 'magic' bits of code
- Writes and updates runbooks for services they work on
description: null
level: junior-to-mid
area: communication
domain: null
- id: a0429b57-40dd-4f65-87d5-924c8a2a1226
summary: Provides feedback on peer’s work
examples:
- Reviews pull requests and gives actionable empathetic feedback
description: null
level: junior-to-mid
area: communication
domain: null
- id: 458cfd7f-b621-462e-ad7f-90870e1d5cfc
summary: Writes clear tickets, issues and bug reports that contain the necessary amount of detail to be easily picked up by other engineers
examples: []
description: null
level: junior-to-mid
area: communication
domain: null
- id: f6e9efd1-7d55-439b-8f7d-c50829e48879
summary: Takes ownership of personal development
examples:
- Finds a training course and takes it
- Studies for and attains a technical certification
- Proactively learns how to use a new tool/language feature
description: null
level: junior-to-mid
area: communication
domain: null
- id: d31a91de-ae96-457c-9ac1-3752acf148fa
summary: Receives feedback and acts upon it
examples: []
description: null
level: junior-to-mid
area: communication
domain: null
- id: 79c4ecfd-7085-49c2-8a21-429b4a269c96
summary: Regularly gives timely actionable feedback to colleagues
examples: []
description: null
level: junior-to-mid
area: communication
domain: null
# Junior to Mid, Delivery
- id: 6dd9f702-6ee8-46d1-9c4c-9c370d971cb1
summary: Works on the most important task
examples:
- Picks the story from the top of a prioritised backlog rather than picking the one that most interests them
- Does not get side-tracked by unnecessary details - “I don’t like these tests so I’m going to re-write them as part of this ticket”
description: null
level: junior-to-mid
area: delivery
domain: null
- id: e7f347c1-b478-4289-aa1a-c05da3f972ec
summary: Uses user research or data to inform decisions
examples:
- Attends customer based user research for a feature being worked on
- Sets up a testing session with peers for a new bit of tooling
- Finds a common pain point among teammates and proposes/builds a solution for it
description: null
level: junior-to-mid
area: delivery
domain: null
- id: a4832222-6d61-4cab-ba45-85eb61c20187
summary: Leads on getting well defined tasks from backlog to production
examples:
- Turns a user story into a technical implementation in production
description: null
level: junior-to-mid
area: delivery
domain: null
- id: 0ff46645-7966-42f8-9144-23b6a88743cc
summary: Regularly collaborates with team members from other disciplines to deliver features
examples: []
description: null
level: junior-to-mid
area: delivery
domain: null
- id: 385be187-5aaa-493b-a663-3b8ec7a04d7f
summary: Regularly contributes openly to team meetings and encourages others to do so
examples: []
description: null
level: junior-to-mid
area: delivery
domain: null
- id: a0c27510-41d9-4a34-98d9-3b49b0ef8056
summary: Regularly communicates the status of work
examples: []
description: null
level: junior-to-mid
area: delivery
domain: null
- id: 168c5839-8070-4bb1-a0fa-b26d1267e791
summary: Asks for help or clarification on tasks when required
examples: []
description: null
level: junior-to-mid
area: delivery
domain: null
- id: 76ec9be3-e63f-4374-9742-cbbc1728549a
summary: Participates in delivery process
examples:
- Moves tickets to done column when they are complete
- Goes to stand-ups and communicates progress
description: null
level: junior-to-mid
area: delivery
domain: null
# Junior to Mid, Leadership
- id: 88c876aa-fce5-414b-b0c0-b1b7602beea8
summary: Presents their own work clearly to a product owner or tech lead
examples: []
description: null
level: junior-to-mid
area: leadership
domain: null
- id: c9cf0d0e-2695-479c-97ef-4457ae36aeb6
summary: Knows who their project's stakeholders are
examples: []
description: null
level: junior-to-mid
area: leadership
domain: null
- id: ac489603-aa6f-48a7-b89b-25b97ffdb541
summary: Acts with integrity, honesty and accountability
examples: []
description: null
level: junior-to-mid
area: leadership
domain: null
- id: 4dc43122-71f1-4fb1-99c8-73aa3a666332
summary: Positively contributes to an inclusive team culture
examples:
- Reminds others that team members may have child care duties
- Draws people working remotely into planning conversations
- Tactfully calls out exclusive or alienating behaviours from others
- Organises a leaving collection for a colleague
- Makes a round of tea for the team
- Documents team norms to help new starters
- Checks in with team members who appear stressed
description: null
level: junior-to-mid
area: leadership
domain: null
- id: 3d8a92de-b293-4300-b12f-a1902f0a22f0
summary: Shares knowledge with peers informally
examples:
- Pairs on a feature with a more junior colleague
- Helps onboard a new hire, acting as their go-to person for questions
description: null
level: junior-to-mid
area: leadership
domain: null
- id: 82a8460f-8554-4837-9799-01174ea5be6f
summary: Has worked with teams outside of their home group (where home group will be one of Customer Products, FT Core, Internal Products, Operations and Reliability, Enterprise Services and Security, FT Group Products or FT Labs)
examples:
- Based in Customer Products but collaborated with developers from FT Core to build a new API endpoint for content
- Has done a bootcamp with another group
- Had done a secondment to Operations and Reliability
description: null
level: junior-to-mid
area: leadership
domain: null
# Mid to Senior 1, Technical
- id: 272be0d0-6b55-11e9-ae4e-0583f673f115
summary: Builds products ensuring they take adequate steps to protect user 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
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 2c1289fe-3bf9-476b-981b-8af2d345d76a
summary: 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
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 1391dba0-974b-4035-85fb-be3096658b59
summary: 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
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 07715459-0423-4507-bdf1-fc397507eec7
summary: Leads on fixing production issues
examples: []
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 1d096180-c331-459e-9dbf-4d8db12ac885
summary: 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
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 0d01eb2a-eed0-499b-8510-a72fd656ada4
summary: Manages technical trade-offs in the team's projects
examples:
- Manages technical debt, understands consequences of technical debt vs the cost of fixing it and acts accordingly
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 5e9295a7-753a-4530-9d25-8deac9118cbe
summary: Takes responsibility for code quality by keeping the quality high and encouraging others in the team to do the same
examples: []
description: null
level: mid-to-senior1
area: technical
domain: null
- id: a021bb76-9190-4059-b4c5-285f4f240169
summary: Regularly and independently debugs and fixes bugs regardless of origin
examples:
- Picks up and debugs an urgent issue comes in to the team, despite having not written the code originally
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 3a87302b-c85f-49f6-9e7a-a4989e717fba
summary: Builds software or services considering resilience, performance and failure modes
examples: []
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 5df15bf0-4274-4238-a213-2ace5a840eb9
summary: Keeps up with industry trends
examples:
- Attends meet-ups or conferences
- Reads blog posts about technology
- Follows industry leaders on twitter
- Shares industry relevant content/links with team members that may be interested
description: null
level: mid-to-senior1
area: technical
domain: null
- id: 152af675-554a-4d0d-afb1-190fca3867b2
summary: 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
description: null
level: mid-to-senior1
area: technical
domain: null
# Mid to Senior 1, Communication
- id: efc4ba84-9188-40cf-97c8-b61da4b163e3
summary: Communicates technical concepts clearly and adapts that communication to the audience
examples:
- Explains technical concepts to colleagues from other disciplines
- Teaches more junior engineers
description: null
level: mid-to-senior1
area: communication
domain: null
- id: ef527eef-b3ed-4e54-9f7c-36b27c81f7f8
summary: Runs meetings with clear agendas and outcomes
examples: []
description: null
level: mid-to-senior1
area: communication
domain: null
- id: 7cf4de83-f8e0-4311-ba1b-a9233c659520
summary: 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
description: null
level: mid-to-senior1
area: communication
domain: null
# Mid to Senior 1, Delivery
- id: c6bcfbd3-550f-4902-8c9a-bd6e9c77d67b
summary: Prioritises technical work for the team (usually with others)
examples: []
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 0cba7c1c-23c8-4618-b286-d98125cd7f5c
summary: Breaks down large complex technical proposals into discrete tasks
examples:
- Creates the user stories for the ticket with a delivery lead
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 850dda3f-df42-4187-a72b-aed1023b7abd
summary: Communicates team/work's status upwards to a Principal or Technical Director
examples: []
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 9e1a0313-f602-4786-97c6-d4d49506f0bb
summary: Where appropriate, builds on other teams' work to solve problems
examples:
- Uses origami components to style a web page
- Records information about technical infrastructure in Biz Ops
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 7aeb8fec-9bd0-4929-981d-584654bc954f
summary: 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”
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: c0d81832-8fe9-485c-8847-25763255a1b3
summary: Tackles simple cross team technical issues
examples:
- Notices a tool used by lots of teams has broken, identifies the problem and fixes
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: d8651fc0-059b-4c11-929f-e07803f9f8bf
summary: 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
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 787be828-9a7f-4998-9bc6-a8b06f2d77de
summary: 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
description: null
level: mid-to-senior1
area: delivery
domain: null
- id: 7ccc5fac-5da2-451e-8043-af2fd880fcf9
summary: Manages, prioritises and communicates own workload
examples: []
description: null
level: mid-to-senior1
area: delivery
domain: null
# Mid to Senior 1, Leadership
- id: f34273e2-3d81-4bde-8c23-0217e71b3536
summary: 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
description: null
level: mid-to-senior1
area: leadership
domain: null
- id: 0777c050-8008-4e17-a437-f8de0be3bd55
summary: Is an ambassador for their team across FT technology and colleagues in the rest of the business
examples: []
description: null
level: mid-to-senior1
area: leadership
domain: null
- id: 5e7b6a79-c553-4852-a5eb-97a6550f59da
summary: Has responsibility for others’ development through mentoring or line management
examples: []
description: null
level: mid-to-senior1
area: leadership
domain: null
- id: 2c9171a0-8935-41fa-809e-08c311538eac
summary: Shows technical leadership
examples:
- Is a tech lead
- Runs, or is on the organising team for a Guild
- Leads on large features or stories
description: null
level: mid-to-senior1
area: leadership
domain: null
- id: 11d32a45-ea1e-411f-a810-12a4f0b8ddb9
summary: Presents their own work clearly to stakeholders
examples: []
description: null
level: mid-to-senior1
area: leadership
domain: null
- id: 37fa54f8-b81e-40d9-b35e-a3e139b872a3
summary: 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
description: null
level: mid-to-senior1
area: leadership
domain: null
# Senior 1 to Senior 2, Technical
- id: 97ac147f-1b61-43c4-b677-dbb837ba092b
summary: Makes pragmatic decisions about technical trade-offs
examples:
- Can predict and explain when something is worth refactoring even when it will impact the speed of delivery
description: null
level: senior1-to-senior2
area: technical
domain: null
- id: 46c795d8-b684-4401-bf1e-45a31dd689cb
summary: 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 overall cost of their technical solutions
- Follows their group's Engineering Principles when building technical solutions
description: null
level: senior1-to-senior2
area: technical
domain: null
- id: d6e3e7d1-1a53-444d-80ad-0240775a028d
summary: Debugs and fixes complex bugs efficiently
examples:
- Investigates a drop in organic traffic from google, makes educated investigations into various aspects of the end to end system, consulting other domain experts along the way and keeping stakeholders aware of progress.
- Investigates a discrepancy in reported ad traffic. Works with the ad ops team to narrow down scope of problem. Uses technical knowledge to consult logs for various systems. Identifies a fix and implements.
description: null
level: senior1-to-senior2
area: technical
domain: null
- id: a8571c7f-296d-47ab-acad-d1b90b5a9391
summary: Finds technical problems outside of immediate team and identifies ways to improve them
examples:
- Notices a lot of requests coming in to Ops Cops from Customer Support for an admin task that could be automated. Automates the task and works with the Customer Support team on how to use the new tool
- While debugging an issue, traces the bug back to a shared library. Creates a patch for the bug and makes sure it is released.
- Spots another team could benefit from using a security feature and helps them implement it
description: null
level: senior1-to-senior2
area: technical
domain: null
- id: 7b2bacf1-ba46-464d-94e3-dc6f7c5edeb0
summary: Translates difficult business requirements into technical designs with stakeholders
examples: []
description: null
level: senior1-to-senior2
area: technical
domain: null
- id: f3ac4fe5-c1ab-4fd2-b559-52d6a79e11d0
summary: Has a deep understanding and willingness to help others for a particular technology or product
examples:
- Responds to questions on Slack about a particular technology or product
- Provides thoughtful and in-depth feedback on Pull Requests that fall into their area of expertise
description: null
level: senior1-to-senior2
area: technical
domain: null
# Senior 1 to Senior 2, Communication
- id: f7045590-960d-4a08-b2d6-db6dcff463d6
summary: Communicates complex technical concepts clearly and adapts that communication to the audience
examples:
- Explains complex technical concepts to colleagues from other disciplines
- Teaches more junior engineers
description: null
level: senior1-to-senior2
area: communication
domain: null
- id: 6942e402-72ff-43ee-ae16-b4c1b17ff92f
summary: Leads hiring process for new Engineers
examples: []
description: null
level: senior1-to-senior2
area: communication
domain: null
# Senior 1 to Senior 2, Delivery
- id: 877d7313-d6de-44ae-80b4-5ed094ddf39a
summary: Takes a stakeholder problem, investigates to understand it and proposes a solution
examples: []
description: null
level: senior1-to-senior2
area: delivery
domain: null
- id: 83b06961-6462-4500-8ff5-9381f7de8dc5
summary: Tackles complex cross-team technical issues breaking them down into smaller bits and addressing them
examples:
- Manages the roll out of a new shared tool to multiple code repositories, identifying what work needs to be done, and finding teams to do the work
description: null
level: senior1-to-senior2
area: delivery
domain: null
- id: 983dd8411-940d-4aa8-9ba6-add04510a7da
summary: Is accountable for the delivery of the team (individually or jointly with other people)
examples:
- Helps delivery lead write progress reports
- Writes a monthly update newsletter for stakeholders about recent releases
- Grooms backlog to make sure issues are ready to be picked up
- Makes sure new features are announced to interested parties (e.g. publishing on the appropriate slack channel, sending a release email)
description: null
level: senior1-to-senior2
area: delivery
domain: null
# Senior 1 to Senior 2, Leadership
- id: 60fc5d33-a5ee-4c1b-a370-e0c8a6b8ada9
summary: Presents their team's work to others in the business
examples:
- Speaks at the Technology All Hands
- Writes one-pagers to explain technical descisions
- Writes a blog post about an aspect of the team's work
description: null
level: senior1-to-senior2
area: leadership
domain: null
- id: 3330bfcd-a2a5-4eb9-9108-14bcb5bf29ab
summary: Identifies knowledge gaps within the team and gives training to address gaps
examples: []
description: null
level: senior1-to-senior2
area: leadership
domain: null
- id: de580f8a-633d-43bb-b970-9b2987e07b86
summary: Takes ownership of ensuring 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
- Models inclusive behaviour to the rest of the team
description: null
level: senior1-to-senior2
area: leadership
domain: null
- id: 7e613602-fda1-43dc-94ca-83e17b24f42c
summary: Contributes to the personal development of more junior people
examples:
- Pairs with more junior team members
- Mentors people
- Line manages people
- Writes blog posts
- Gives talks at meet-ups or conferences
description: null
level: senior1-to-senior2
area: leadership
domain: null
- id: 1ee4d2b9-8160-42e0-a763-f45703abc6d5
summary: Helps resolve disagreements healthily
examples:
- Helps the team navigate disagreements over the best way to do things. Gets agreement and buy-in from engineers on a solution to a problem
- Encourages team members to speak freely in retrospectives
- Encourages team members to treat each other empathetically
description: null
level: senior1-to-senior2
area: leadership
domain: null
- id: 45780158-375a-421b-a89a-97d32e61cdba
summary: Shapes roadmap or priorities (in collaboration with Product Owners if they work in a team with that role)
examples: []
description: null
level: senior1-to-senior2
area: leadership
domain: null
You can’t perform that action at this time.