The Engineering competencies are used to inform conversations about career progression between an engineer and their line manager. Every engineer in the CTO organisation of the Financial Times can help shape these competencies.
The competencies all follow tone and language guidelines, any edits or additions should keep to these guidelines.
Using the GitHub interface is the quickest way to get started with making suggestions to the engineering competencies. There are a few files in the repository that you'll need to care about:
-
data/competencies.yml
: this is the file which contains all of the competencies data for the different levels. Suggest edits to this file here -
data/levels.yml
: this is the file which contains meta information about the competency levels. Suggest edits to this file here -
data/domains.yml
: this is the file which contains meta information about the competency domains. Suggest edits to this file here
If you want to add a new level, you'll also have to create the relevant levelname.html
file in site/pages/competencies
.
Once you've committed your changes and opened a pull request, your changes will be automatically tested to make sure that the files are in the correct format. Pay attention to the status of your pull request and use the CircleCI interface to review any errors.
GitHub is useful for smaller changes, but you may prefer to edit competencies in an editor on your local machine. Before reading further, you'll need to follow a short Local Development guide to get yourself set up.
Once you have everything set up locally, you can start to edit the following files. It's best to do this on a branch so that you can open a pull request later on GitHub.
-
data/competencies.yml
: this is the file which contains all of the competencies data for the different levels. This adheres to a strict schema, see Running Tests below -
data/levels.yml
: this is the file which contains meta information about the competency levels. This adheres to a strict schema, see Running Tests below -
data/domains.yml
: this is the file which contains meta information about the competency domains. This adheres to a strict schema, see Running Tests below
If you want to add a new level, you'll also have to create the relevant levelname.html
file in site/pages/competencies
.
We use JSON Schema to test that the competencies YAML is valid, and that no changes to the structure can be made accidentally. These tests are run automatically on CircleCI, but it may be useful for you to test changes locally before pushing. You can do this with:
make validate-competencies-json
This will first run make build
for you behind the scenes, and then run the tests against the built JSON. If there are any validation issues, errors are output to the command line and the command will exit with a code of 1
.