Monday, July 29, 2019

Technical Pointers

Operational Excellence: 
Prime Day we have increased traffic. What do you do prepare for the event?

Sample Technical Questions:

Assessment is how you deal with ambiguity to really understand and get to the right answers. Understand the right tasks and ask the right questions.
Think about all the use cases and capabilities within the design- what is the output?
And work backward- break out into components and inputs and outputs of each components keeping it decoupled.
How do they talk to each other, synchronous calls an asynchronous call, what databases will be used?
What are the components that work and those that don’t work?


1). How would you design a system to tackle the problem of integrating with millions of small and large data sources to populate a central product repository which can be used to feed product search? - E.g. Amazon Kinesis (Firehose, Analytics, Streams), ELK, Kafka etc.

Firehose -
   - Easily load huge volumes of streaming data into AWS (S3, Redshift, ES)
   - Capture, transform, & load streaming data into Kinesis Analytics, S3,  RS, ES
   - Can also batch, compress, and encrypt the data before loading it into AWS
   - Automatically scales to match the throughput of your data
   -  Input - Any Datasource (website, clickstreams, media feeds, IT logs etc)
   - Output - Kinesis Analytics, S3,  RS, ES

Analytics -
   - Process streaming data in real time with standard SQL
   - Scales automatically to match volume and throughput rate of incoming data
   -  Output - Integrates out-of-box with Kinesis Streams and Kinesis Firehose -
   -  Thus easy to send processed results to S3, RS, ES, or custom destination
   -  Input - Kinessis Firehose, Kinessis Streams
   -  Output - S3,  RedShift, ElasticSearch or  custom destination
   
Streams -
    - Enable to build custom applications that process or analyze streaming data.
    - Can continuously capture and store terabytes of data per hour from hundreds of thousands of sources such as website, clickstreams, financial transactions, social media feeds, IT logs, and location-tracking events.
    -  Input - Any Datasource (website, clickstreams, media feeds, IT logs etc)
   -  Output - S3,  RedShift, EMR, Lambda etc


2). Design a system to generate pick lists for randomly stored items across 30 rows of inventory. Think Home Depot size.

[Q] Now assume multiple workers, and they can request work from any isle location
[Q] So I’m a picker at isle 10 asking for work. It is checked against the sorted list then what happens?
[Q] Now volume is rising, and our service is struggling to keep up and generate pick lists. What do you do?
[Q] You tell me. Would you design differently knowing 8-10x scaling?

3). Design service for Stations whisper sync? APIs? Storage?

4). Design a login page for the Amazon retail website.



5).  Design a warehouse management system that people use to do labor planning.

6). You are building a new streaming media service, you plan on making music and video available as a subscription service, and also for purchase and rent.
Q). How would you represent this system in Java (or C++)?
Q). Could you draw a diagram, say a UML diagram, of the classes in question?

7). Design a point-to-point local courier service with the web application, courier mobile app.

8). Design an online card game.

9). Design/Describe Uber Design/Architecture - 
      Refer - https://youtu.be/umWABit-wbk

10). Design/Describe Whatsapp Design/Architecture - 
        Refer - https://www.youtube.com/watch?v=vvhC64hQZMk


Hope this helps..

Arun Manglick