Engineering competencies are available through a JSON API. This documentation is split into two sections: entities, and endpoints. The entities documentation outlines the objects returned by the API, the endpoints documentation outlines how to get these entities.
A Competency
entity represents a single engineering competency, they look like this:
{
// A unique identifier for the competency
"id": UUID,
// A short summary of the competency
"summary": String,
// An array of examples of how this competency might be met.
// This array may be empty, indicating that there are no
// supporting examples
"examples": [String],
// An array of URLs which support understanding of how the
// competency might be met. This array may be empty,
// indicating that there are no supporting URLs
"supportingUrls": [
{
"label": String,
"url": String
}
],
// A longer description of the competency. This may be null
// if the competency has no description
"description": String,
// The level that the competency applies to. This will be one
// of "engineer", "senior1", "senior2", or "principal"
"level": String,
// The area that the competency is in. This will be one of
// "technical", "communication", "delivery", "leadership"
"area": String,
// The domain that the competency is specific to. This may
// be null, indicating that the competency applies to all
// engineers regardless of domain
"domain": String
}
A Level
entity represents one of the engineering levels at the FT, e.g. the set of competencies that are exhibited by a Mid Engineer.
{
// The indenfier for the level. This will be one of "engineer",
// "senior1", "senior2", or "principal"
"id": String,
// The human-readable name of the level
"name": String,
// A single-paragraph summary of what is expected for engineers to
// move into the next level
"summary": String,
// An array of Competency entities. This property is optional, and
// is not present when requesting all levels
"competencies": [Competency]
},
Get the exact version of the competencies that the API exposes.
Method |
GET
|
---|---|
Path |
/api/v1/version.json
|
Status |
200 on success
|
---|---|
Headers |
|
Body |
The current semantic version, as a String. E.g. "1.2.3"
|
curl
commandcurl https://engineering-progression.ft.com/api/v1/version.json
Get all of the competencies for every level as an array. This endpoint responds with an array of Competency entities.
Method |
GET
|
---|---|
Path |
/api/v1/competencies/all.json
|
Status |
200 on success
|
---|---|
Headers |
|
Body | Array of Competency entities |
curl
commandcurl https://engineering-progression.ft.com/api/v1/competencies/all.json
Get all of the competency levels as an array. This endpoint responds with an array of Level entities, but these will be returned without the competencies
property.
Method |
GET
|
---|---|
Path |
/api/v1/levels/all.json
|
Status |
200 on success
|
---|---|
Headers |
|
Body | Array of Level entities |
curl
commandcurl https://engineering-progression.ft.com/api/v1/levels/all.json
Get all of the competencies for a single level, as well as the level information. This endpoint responds with a single Level entity which includes the competencies
property.
Method |
GET
|
---|---|
Path |
/api/v1/levels/:level-id.json (where :level-id is the unique identifier for a Level) |
Status |
200 on success
|
---|---|
Headers |
|
Body | Level entity |
curl
commandcurl https://engineering-progression.ft.com/api/v1/levels/engineer.json