---
description: >-
  https://leetcode.com/discuss/interview-question/1257969/wayfair-karat-interview-20-mins-scenario-based-system-design
---

# SD

**Wayfair Karat Interview | 20 mins Scenario Based System Design**

**Position**: Senior Software Engineer (Wayfair L4)\
**Location**: Boston, MA\
**Interview format**: Live Coding interview with a third party interviewing company called Karat, which companies like Wayfair, Compass, etc. use for it's first technical screening. The recruiter mentioned that it would be a 45-50 minute interview, with first 20 minutes revolving around System Design design concepts, followed by coding questions. I was asked two coding questions, and roughly 5 to 6 scenario based questions on System design. I shall add the link to coding quesitons asked at the end of this post.

**Questions**:

I do not remember the exact wording of the the questions, but can give a general idea from what I remember. Roughly 5 or 6 different scenario based questions were asked revolving around system design concepts. I can roughly recall the following:

1. For the following scenarios, which would be better - Strong consistency/Eventual consistency. Explain reasons why. About 3 scenarios were given, one of which was a Banking application.
2. The interview gave a scenario for Google docs and multiple users can access the same document, and google docs uses a Round Robin load balancing approach. Do you see any issues with using such an approach.
3. One question was related to finding the max throughput of a system. It was sort of like a graph diagram, with various about 6 stages labeled A to F, and the throughput they operate on. I was asked to calculate the max throuhput of the system.
4. One question was related to a scenario where they were using a relational database, and two tables were provided with a foreign key reference. They wanted to see how we can scale such a system (I believe they were looking for data partitioning/sharding techniques that we could apply.)
5. Another scenario was something like that there was a bug on an application, and you ended up having a lot of failed requests. You have a database that stores all IDs that are there, and you also have large log files from about 500 different production servers that log the IDs of the successful requests. How would you come up with a solution to find the IDs that were missing/

Overall, a good understanding of core system design concepts such as load balancing,caching, map-reduce, throughput, etc. should be helpful to answer these questions.

**Links to coding questions asked**:

1. [https://leetcode.com/discuss/interview-question/1257950/Wayfair-or-Karat-Interview-or-L4-Senior-Software-Engineer-or-Question-1-Find-Contiguous-URL-History](https://leetcode.com/discuss/interview-question/1257950/Wayfair-or-Karat-Interview-or-L4-Senior-Software-Engineer-or-Question-1-Find-Contiguous-URL-History)
2. [https://leetcode.com/discuss/interview-question/1257952/Wayfair-or-Karat-Interview-or-L4-Senior-Software-Engineer-or-Question-2-Find-Purchased-Users-data](https://leetcode.com/discuss/interview-question/1257952/Wayfair-or-Karat-Interview-or-L4-Senior-Software-Engineer-or-Question-2-Find-Purchased-Users-data)

**Result**: The recruiter reached out the next day to move forward to the Virtual onsite interview. Any pointers for that would be really appreciated. Thanks!\
Kindly upvote if this post was helpful! Thank you, and happy leetcoding :)
