Wayfair | Senior Software Engineer | L4 | Bangalore | Rejected

wayfair logo
wayfair
senior software engineerbangaloreRejected
June 22, 202436 reads

Summary

I recently interviewed at Wayfair for a Senior Software Engineer, L4 role in Bangalore. The process included a phone interview with a detailed coding problem and multiple system design questions, but I was ultimately rejected for the onsite round.

Full Experience

I applied for a Senior Software Engineer, L4 role at Wayfair through Instahyre and was contacted by a recruiter. After an initial Google Meet screening to discuss my current role and responsibilities, the recruiter confirmed that I was suitable for the L4 role, and no online assessment was required due to the seniority of the position.

The phone interview round lasted about 45 minutes. It began with a 5-minute introduction, followed by a 20-minute coding/problem-solving session. This led into a 15-minute system design discussion, and the interview concluded with 5 minutes for me to ask questions to the interviewer.

Unfortunately, the final verdict was 'No Hire,' and I wasn't able to move forward to the onsite rounds. A cooling period of 6 months has been applied.

Interview Questions (5)

Q1
Badge Access Log Mismatch
Data Structures & AlgorithmsMedium

We are working on a security system for a badged-access room in our company's building.

Given an ordered list of employees who used their badge to enter or exit the room, write a function that returns two collections:

  • All employees who didn't use their badge while exiting the room - they recorded an enter without a matching exit. (All employees are required to leave the room before the log ends.)
  • All employees who didn't use their badge while entering the room - they recorded an exit without a matching enter. (The room is empty when the log begins.)

Each collection should contain no duplicates, regardless of how many times a given employee matches the criteria for belonging to it.

records1 = [
["Paul", "enter"],
["Pauline", "exit"],
["Paul", "enter"],
["Paul", "exit"],
["Martha", "exit"],
["Joe", "enter"],
["Martha", "enter"],
["Steve", "enter"],
["Martha", "exit"],
["Jennifer", "enter"],
["Joe", "enter"],
["Curtis", "exit"],
["Curtis", "enter"],
["Joe", "exit"],
["Martha", "enter"],
["Martha", "exit"],
["Jennifer", "exit"],
["Joe", "enter"],
["Joe", "enter"],
["Martha", "exit"],
["Joe", "exit"],
["Joe", "exit"]
]

ENTER W/O EXIT EXIT W/O ENTER
Expected output: ["Steve", "Curtis", "Paul", "Joe"], ["Martha", "Pauline", "Curtis", "Joe"]

Other test cases:

records2 = [
["Paul", "enter"],
["Paul", "exit"],
]


Expected output: [], []

records3 = [
["Paul", "enter"],
["Paul", "enter"],
["Paul", "exit"],
["Paul", "exit"],
]


Expected output: ["Paul"], ["Paul"]

records4 = [
["Raj", "enter"],
["Paul", "enter"],
["Paul", "exit"],
["Paul", "exit"],
["Paul", "enter"],
["Raj", "enter"],
]


Expected output: ["Raj", "Paul"], ["Paul"]

All Test Cases:
mismatches(records1) => ["Steve", "Curtis", "Paul", "Joe"], ["Martha", "Pauline", "Curtis", "Joe"]
mismatches(records2) => [], []
mismatches(records3) => ["Paul"], ["Paul"]
mismatches(records4) => ["Raj", "Paul"], ["Paul"]

n: length of the badge records array

Q2
Real-time Group Chat Application Design
System Design

We are building a real time group chat app that consists of a backend server and a frontend web app. Our MVP needs to support multiple users joining a group. When a user is part of a group, that user should be able to send a message to all other users in the group and read all messages posted in the group.

How would you design this group chat application, specifically what protocol(s) could be used to communicate between our server and client web app?

Q3
Facebook Friend Count Feature Scaling
System Design

We are working on a clone of Facebook. We want to add a numeric count to every post showing how many friends the post's author has at the time of viewing the post, like this:

Marie McWilliams (105 friends)

I had a great day today, feeling good!

Our database has two tables:

USER

'user_id' (primary key)

'name'

'created_date'

USER_RELATIONSHIP

'friendship_id' (primary key, unique to each relationship)

'user1_id' (indexed)

'user2_id' (indexed)

'start_date'

Focusing on the database, how would you implement the friend-count feature? Note we will soon be more popular than Facebook, so the solution needs to scale.

Q4
Google Docs Clone Load Balancing Performance
System Design

We are working on a clone of Google Docs that allows users to collaborate on documents. Many users can work on the same document at the same time. We have 100 instances of our service running on 100 different machines. Each document needs to be managed exclusively by one instance while it is in use, but one instance can handle multiple documents at once. We have a simple load-balancing system. Because each document has a random numeric ID found in the URL, we use the value of (id % num_instances) to route traffic. For example, with 100 jobs, traffic for document # 314814196 is routed to the instance with index 96. How will this system perform as the usage grows?

Q5
Consistency Models for Various Applications
System Design

Which consistency model is more appropriate for each of these applications: strong consistency, or eventual consistency? Why? (Select the best answer that applies for each question).

An API call that needs to respond within 20 milliseconds, used by a web service to retrieve metadata about a piece of streaming media.
A web analytics platform recording every single click on a web page.
A banking system that makes deposits and payments to checking accounts.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!