Programmer Competency Matrix

Examples of what developers should be able to tackle within the context of different technical skills. Use it as a reference when curating coding challenges for technical interviews or developer portfolios.

  • Design a SQL database

    Backend, Fullstack

    Skills
    Database design, SQL
    Level
    Mid-level+
    Criteria
    Ensure the necessary level of normalization. There are primary and foreign keys. The right indexes are in place.
  • Build a REST API service

    Backend, Fullstack

    Skills
    REST API, HTTP, Microservices
    Level
    Junior+
    Criteria
    Ensure the service functions on all endpoints, both for the "Happy case" and error cases (e.g. when dealing with invalid data).
  • Optimize a REST endpoint for speed

    Backend, Fullstack

    Skills
    REST API, HTTP, Microservices, Performance
    Level
    Senior+
    Criteria
    Ensure the service endpoint doesn't slow down as the data volume increases. This might require denormalizing the service database for a faster fetch.
  • Ensure no lost data under concurrent load

    Backend, Fullstack

    Skills
    Microservices, Concurrency
    Level
    Senior+
    Criteria
    Ensure there is a protection mechanism (i.e. database transaction) for all non-atomic operations that mutate the state.
  • Fetch aggregated data from the SQL database

    Backend, Fullstack

    Skills
    Database design, SQL
    Level
    Mid-level+
    Criteria
    Ensure there is a protection mechanism (i.e. database transaction) for all non-atomic operations that mutate the state.
  • Organize code as a set of low-coupled modules.

    Backend, Fullstack, Frontend, Mobile

    Skills
    Clean code
    Level
    Mid-level+
    Criteria
    Ensure that the code is split into low-coupled modules. Evaluate how easy it'd be to extend the provided implementation with a new feature.
  • Document technical decisions

    Backend, Fullstack, Frontend, Mobile

    Skills
    Docs
    Level
    Junior+
    Criteria
    Ensure that all important technical decisions are well-documented. Examples: running the project locally, library choice, any implementation trade-offs.
  • Integrate with a REST API

    Frontend, Mobile

    Skills
    REST API, HTTP, State management
    Level
    Junior+
    Criteria
    Ensure that the app uses the correct API endpoints to integrate and organizes its internal state in a reasonable way. Also, ensure error handling when the backend returns an error.
  • Implement user-input validation

    Frontend, Mobile

    Skills
    Data format, Validation
    Level
    Junior+
    Criteria
    Ensure that the app validates user input according to the expected data format.
  • Implement offline support

    Frontend, Mobile

    Skills
    Resiliency, Concurrency, State management
    Level
    Senior+
    Criteria
    Ensure the following scenarios are covered: persisting the local state, synchronizing back on the recovered connection, race conditions with multiple devices - some online, some offline.