Engineer

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

Technical

Uses version control to manage development workflow

Examples:

  • Git specific example: clone, branch, add, commit, push, rebase

Proficiency: Working knowledge

Uses code to make something with some degree of complexity

Examples:

  • Takes a feature from their team backlog and writes the code for that feature
  • Automates a regular task using Python
  • Writes a CloudFormation template

Proficiency: Working knowledge

Writes automated unit and end to end tests for features

Proficiency: Working knowledge

Fixes or updates tests when changing existing code

Proficiency: Working knowledge

Reuses existing code

Examples:

  • Uses a python package in project
  • Uses a node package in project
  • Integrates with proprietary software packages
  • Uses Origami

Proficiency: Working knowledge

Maintains the security of the systems they work on

Examples:

  • Fixes vulnerabilities in dependencies raised by Snyk
  • Fixes vulnerabilities raised by the cyber security team
  • Doesn't introduce vulnerabilities outlined in the Open Web Application Security Project (OWASP) top 10

Supporting URLs:

Proficiency: Working knowledge

Regularly and independently debugs and fixes bugs in their own code

Examples:

  • Fixes broken tests caused by changes in their code
  • Uses logging or a debugger to find the root cause when a new feature is not working as expected

Proficiency: Working knowledge

Gets involved in fixing live incidents in production

Examples:

  • Notices that an AWS region is down so fails over to another region
  • Responds to alerts for services in production by investigating errors and beginning remedial action
  • Works as home teams' "ops cop", liaising with Operations and Reliability to restore a service

Proficiency: Working knowledge

Uses continuous delivery or build pipelines for automation

Examples:

  • Sees their build is failing and finds out why using the CircleCI or Jenkins interface
  • Restarts broken builds
  • Makes config changes in CircleCI
  • Adds a build status badge to their project
  • Promotes an app from staging to production in Heroku

Proficiency: Working knowledge

Uses monitoring (but doesn’t necessarily implement monitoring)

Examples:

  • Pingdom, grafana

Proficiency: Working knowledge

Makes pragmatic decisions 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

Proficiency: Working knowledge

Communication

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

Proficiency: Working knowledge

Provides feedback on peer’s work

Examples:

  • Reviews pull requests and gives actionable empathetic feedback
  • Recognises when a more senior colleague has not given enough detail in an explanation, and asks for clarification
  • Gives realtime feedback in mob programming sessions

Proficiency: Working knowledge

Writes clear tickets, issues and bug reports that contain the necessary amount of detail to be picked up by other engineers

Examples:

  • Adds links to the pages that are affected by a bug
  • Writes steps to reproduce an issue that they've found
  • Adds screenshots to a ticket to help explain a display bug

Proficiency: Working knowledge

Regularly gives timely actionable feedback to colleagues

Examples:

  • Emails positive feedback to a colleague's line manager, after the colleague was especially helpful.
  • Notices that someone in the team has invited everyone to a meeting without an agenda. Asks them to add one so people know what the meeting is for and can prepare properly.

Proficiency: Working knowledge

Delivery

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
  • Creates tickets to capture non-trivial tech debt, rather than getting side-tracked by things not needed to complete the current task

Proficiency: Working knowledge

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

Proficiency: Working knowledge

Leads on getting well defined tasks from backlog to production

Examples:

  • Turns a user story into a technical implementation in production
  • Raises blockers in timely way

Proficiency: Working knowledge

Regularly collaborates with team members from other disciplines to deliver features

Examples:

  • Pairs with the designer who worked on visuals or wire-frames for a feature
  • Sits with their product owner to discuss some edge-cases in a feature
  • Helps to debug a cross-browser issue with a tester

Proficiency: Working knowledge

Regularly contributes openly to team meetings and encourages others to do so

Proficiency: Working knowledge

Regularly communicates the status of work

Proficiency: Working knowledge

Asks for help or clarification on tasks when required

Proficiency: Working knowledge

Participates in delivery process

Examples:

  • Moves tickets to done column when they are complete
  • Goes to stand-ups and communicates progress

Proficiency: Working knowledge

Can articulate the business goal of a set of features

Examples:

  • In conversation, distinguishes between what a feature does and the benefit it should provide
  • Proposes priority or feature changes to deliver business benefits sooner
  • Explains the business benefits of work when demoing it

Proficiency: Working knowledge

Leadership

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
  • Documents team norms to help new starters
  • Checks in with team members who appear stressed

Proficiency: Working knowledge

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
  • Comes back from a conference and shares their learnings with others

Proficiency: Working knowledge

Has worked with teams outside of their home group (where home group will be one of Customer Products, FT Core, Community, Cyber Security, Internal Products, Engineering Enablement, Staff Experience and FT Specialist)

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
  • Works in the Interactive Graphics team and collaborates with someone from Editorial on a project
  • Works in Internal Products and collaborates with the Origami team on a new feature in a component

Proficiency: Working knowledge

Takes ownership of their personal development

Examples:

  • Sees some code that they don't understand, and researches how it works
  • Proactively learns how to use a new tool/language feature
  • Reads blog posts about technology
  • Studies for and attains a technical certification
  • Finds a training course and takes it
  • Attends meet-ups or conferences

Proficiency: Working knowledge