Algolia Solution Architecture Assignment

This is the hiring assignment for the SA Team at Algolia. It’s intended to mimic work you might do here, while giving us an understanding of your skills in:

  • Coding
  • User Experience
  • Communication

If you want to know how we will judge the assignment, you can view our scoring rubric.

Please spend no more than 4 hours on this assignment, everything you need can be found in our public documentation.

Once done please host the front end on github pages (or an other tool we can access) and provide us a link to your demo along with the source code!

Brief

Part One - Technical Assignment (3.5 hrs)

Our customer Spencer and Williams want to implement a federated search experience which includes both products and query suggestions in the autocomplete they provided. They have asked for us to create a demo of this behaviour in their provided codebase.

Spencer and Williams have provided the raw product data and have asked for us to create the suggestions using Algolias query suggestions feature.

Part Two - Questions (0.5 hrs)

Please answer example customer questions in the questions directory.

Getting started

First you'll need to sign up for an Algolia account @ https://www.algolia.com/users/sign_up.

You can find the product dataset in the data folder inside this repo. You will need to push this data to Algolia in your own application and connect the app to the dataset in both components.

You can create a Query Suggestions index from your Algolia trial account following our documentation.

Everything you need to complete this assignment can be found on algolia.com/docs.

Running this repo

To run this project locally, install the dependencies and run the local server:

npm install
npm start

Alternatively, you may use Yarn:

yarn
yarn start

Open http://localhost:3000 to see your app.

Scoring Rubric

Technical Assignment

Did the candidate: Yes No
Follow the instructions of the assignment?
Write code that follows best-practices?
Avoid over-engineering?
Demonstrate understanding of the code they wrote?
Demonstrate good code and process organization?
Craft a search experience that is simple to understand?
Account for different use cases (e.g. mobile, touch)
Complete the assignment in an efficient manner?
Go beyond what was asked of them?
Ask for clarification when necessary?
How long did the candidate spend on the assignment (in hours)?

“Customer” Questions

Did the candidate: Yes No
Answer the questions correctly?
Answer in a succinct manner?
Have minimal spelling, grammar, or formatting mistakes?
Employ a friendly, helpful tone?

Overall Impressions

Does the candidate demonstrate being in the top 10% of: Yes No
Technical aptitude
UX
Communication skills