1. Here's a project with a back end API server, it's a repository already cloned to disk, and includes a README.md with very detailed (local) deployment instructions, that one can copy+paste. Thinking: Validates the individual's ability to read, and synthesise
2. Run the API server - this in turn provides a swagger API, that allows users to see the available APIs in their browser, and instructions to do so. The machine has various chrome plugins, Postman, curl, etc pre-installed. Thinking: Validates curiosity, and basic understanding of the modern(ish) web.
3. The candidate is to create a new project (framework of their choosing). They have the time of their choosing to implement an impossible to complete task (which we share). They have to create <something> that can trigger various APIs to insert, update, and remove data from a database. We provide the sample data in text files such that copy+paste is possible. Thinking: Validates if and how they reach out for assistance. Helps us understand where the candidate likes to spend the time of their choosing while working on a solution. Encourages a conversation about difficulties, frustrations, what could have gone better, and feedback.
This entire process is designed to ensure that we actively interview the candidate with something "real". It allows us to understand the real level of a candidate based on their efforts (i.e write tests, don't write tests). This is not perfect - but it's the best we could get. I'd love feedback.