---
# System prepended metadata

title: Frontend Interviews

---

# Frontend Interviews

## The Challenge

It's common within the frontend community to use the https://todomvc.com as the go-to "Hello World" project for validating frontend frameworks and libs. The app is simple enough to make it feasible to implement during a tech interview, but feature-rich enough that would allow us to assess different topics, such as: [Thinking in React](https://reactjs.org/docs/thinking-in-react.html), State management, Unit and end2end testing, refactoring, etc...

The idea would be to have the candidate implement his own version of the TodoMVC using his preferred frontend framework and programming language, suggesting React and TypeScript as the default options given that we use them at Power.

There are various implementations of the TodoMVC app for quite a few frontend libraries including a [React implementation](https://todomvc.com/examples/react/#/) that we can use as reference so the candidate can get familiar with the app/features she/he will work on.

### Requirements
This is a non-exhaustive list of things that the app may contain:

1. Add/Remove/Edit tasks
1. Complete a task
1. Filter by tasks state (active, inactive, all)
1. Show task counters
1. Apply CSS 
1. Persist state to localStorage
1. Read state from an external datasource
    - GraphQL mock API: https://mocki.io/graphql
    - REST mock API: https://dummyjson.com/todos

## Project Setup

Although the candidate would be free to set up their own project on their machine, we'd recommend using https://codesandbox.io which provides online, zero-configuration environments for developing in various frameworks/libs including https://beta.reactjs.org.

That would:

1. Simplify the project setup process (we're literally one click away from having a fully working React project);
2. Remove the need for us to maintain an interview Github repository like it is currently done for Rails interviews;
3. Enable real-time collaboration between the candidate and the interviewer via its live/collaboration features (think Google Docs for coding).
