Example API Assessment

This repo contains an example API assessment written in Node.js + Typescript that can be used in the interview process.

The Challenge

Here is a brief overview of the challenge:

  • The server folder contains biolerplate code for an API. The challenge involves fetching data from a 3rd party API, deduplicating the data, and sorting the results.
  • The Instructions.md contains instructions that you could give an applicant. These instructions should be tweaked based on how you are running the assessment (async vs. live) and what skills you want to measure.

Rubric

Outlined below is a potential rubric tailored for this assessment. Depending on how you want to use the challenge, you might consider making changes. For instance, if opting for a post-assessment follow-up discussion, the written component can be discussed there rather than asking for a written submission. Here's a guide to evaluate the candidates:

  • Meeting User Requirements:

    • Is the API functional? Does it encompass all the stipulated requirements?
    • How well does it tackle edge cases and possible errors? For instance, invalid abilities or missing parameters.
  • Efficiency:

    • How swiftly does the solution fetch, process, and return data?
    • To solve this problem properly, you need to make a lot of API requests (one for each ability and one for each Pokémon to do sorting). Does the solution make these requests in parallel?
    • Did the solution do any unnecessary for loops? Does the solution properly deduplicate the data (using id as a unique identifier) and use the appropriate data structures to do so?
  • Code Organization:

    • Is the structure of the code logical and clear?
    • Are naming conventions coherent and easy to understand?
  • Best Practices:

    • Does the code steer clear of anti-patterns?
    • If there are automated tests, how comprehensive and effective are they?
  • Written:

    • Does their solution demonstrate research into the Pokémon API? Does the solution consider product and business tradeoffs for different potential solutions (rate limiting, caching)?
    • Does the candidate explain their decisions and considerations in a clear and structured manner?

How to Use

If you want to use this assessment, there are few ways you can do this:

  1. DIY:

    • create a public template and have applicants create private repos from the template.
    • share the code as a zip and ask them to send back a zip or private repo.
  2. Use Hatchways:

    • Leverage Hatchways to auto create private repos to limit assessment solution leakage
    • Leverage Hatchways' grading tools to streamline marking - auto-deploying the solution, automated testing, autogenerated reviews with AI and ChatGPT plagiarism detection.
    • Leverage Hatchways to provide more language support for this assessment beyond Node.js + Typescript.