DevSkills has been acquired by Alva Labs. Learn more

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.