> For the complete documentation index, see [llms.txt](https://omalab.gitbook.io/engineeringwiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://omalab.gitbook.io/engineeringwiki/teams-and-interviews/interview-questions.md).

# Interview Questions

### React.js app with Rails API Backend

* Are you familiar with ES6 and ES7 syntax?
* Have you used Redux? If so, please rate yourself on a 1-10 scale.&#x20;
* What do you do in your code, organizationally, structurally, etc. to make your code clean, clear, and professional?&#x20;
* When building an React frontend/Redux + Rails API-based application, particularly one that has a LOT of CRUD, what are some of the strategies you employ to make your code DRY?
* How do you maintain state in your React app for things like the currentUser, currentProject, or other "container" items?
* Do you follow any standard guides or best practices?&#x20;
* Do you use decorators?
* Are you familiar with the JSONAPI specification?

## React Test

Implement breadcrumbs and a sidebar that react to the current URL. Using CreateReactApp, create a new app. Install Redux and React Router. Install a sidebar and a breadcrumb component.

Then, for each of these URLs:

* /
  * Sidebar should show Global options of
    * Projects = to the projects list at /projects
    * Logout = to a /logout path
  * Breadcrumb should not display
* /projects
  * Sidebar should show the projects button as active
  * Breadcrumbs should display
    * Projects = to the projects list (current)&#x20;
    * No menu
* /projects/1
  * Sidebar should show
    * Project Name as sidebar title
      * Keywords to = /projects/:projectId/keywords
      * Segments to = /projects/:projectId/segments
      * Workflows to = /projects/:projectId/workflows
    * Global context
      * Projects = to /projects
      * Logout = to /logout
  * Breadcrumbs
    * Projects to = /projects
    * Project = should show active, but not clickable projectId (would be name in real one)
    * Menu (on right hand side)
      * New project = clicks to popup a modal that adds a new project wiht only field of name
      * Project count (shows the total number of projects)
* /projects/1/keywords
  * Sidebar should show same as above
    * Keywords should be active/highlighted
  * Breadcrumbs should
    * Projects to = /projects
    * ProjectId = /project/1
    * Keywords as active (nonclickable) item
    * Menu
      * New keyword button
* /projects/1/keywords/1
  * Sidebar should show
    * Keywords should be active links to /projects/1/keywords
  * Breadcrumbs should show
    * Proejcts = /projects
    * ProjectId = /projects/id
    * Keywords = /projects/:projectId/keywords
    * :keywordId = nonclickable text&#x20;

![](https://www.evernote.com/shard/s1/sh/fb74a31c-eaaf-4bca-b02a-ef3f31ef9933/4f882f4a49a4821b/deep/0/)

![](https://www.evernote.com/shard/s1/sh/c2c2fdc9-19dc-4161-b086-3fd40d3c8e44/053cff4d0ac014c3/deep/0/)

![](https://www.evernote.com/shard/s1/sh/4ba34965-1322-4b12-a060-917be8ede04d/0e53adf839be6886/deep/0/)
