Our social:

Amazon SDE Hiring Challenge Problem : Member Miner [Design / Analytics] Answer (solution)

Member Miner [Design / Analytics]
[Problem Statement]
We have a data set of 10M users across the globe comprising their preferences. Challenge is to design a technical stack and detailed architecture required to build web-based analytics dashboard.
  • Data Parameters: members[] —> { id, dob, country, ethnicity, weight, height, is_veg, drink}
  • ethnicity AS integer (1-9).
  • weight AS integer (in grams) : range [40,000-1,80,000]
  • height AS integer (in centimetre) : range [121-220]
  • is_veg AS boolean (0/1)
  • drink AS boolean (0/1)
  • dob AS date
  • country AS Integer
[Basic Features]
  • Dashboard providing detailed analytics on given members and data.
  • This frontend dashboard also have Visual Graphs and Data Matrix.
  • Elegant frontend connecting with backend services to fetch data matrix.
  • Backend Services are RESTFul endpoints serving frontend.
  • Convert grams and centimeters to more relevant units.
[Deliverables]
— Task Execution Flow (should contain backend / frontend aspects)
— Tech Stack Used and role of each stack
— Also, elaboration on how would you implement basic features
— Architecture diagram
— High level components
— Each component’s classes with API signatures, member variables
— Sequence diagrams for the main use cases across all the components
— Data storage architecture and schema
[Requirement]
— Understand the underlying problem and solution around it
— Provide viable solution to build given requirement
— Submit the necessary deliverables in a single archive.
[Guide]
  • Ethnic group conversion: https://gist.github.com/mayurah/ade1e2666b651b7e5c4a#file-ethnic-group-csv
  • Countries (if required): https://gist.github.com/mayurah/aa91b5af8cac57dc986992aa9e07b069
— Drawing Tools: https://www.draw.io/ | http://asciiflow.com/
—Stacks: http://techstacks.io/
— Hand written design is also fine as long as it’s legible, please attach screenshots of the hand written design if you prefer that over the drawing tools
— Suggestion:
  • Spend 15 minutes in brainstorming and researching about given requirement, learn thoroughly.
  • Once done, start choosing a ideal tech stack, list out various analytical points which can be determined and revise/optimise final draft if required.
Note: You need not have to provide functional prototype, but the deliverables mentioned after understanding the requirements.
  • Hope this helps see creative data-geek in you.

Here is a problem and here is an answer 

                               ANSWER HERE