Walmart SDE 3 Interview Experience

walmart logo
walmart
sde 3No Offer
December 14, 202436 reads

Summary

I interviewed for an SDE 3 position at Walmart, which involved three comprehensive rounds covering Data Structures & Algorithms, Low-Level Design/High-Level Design, and a Hiring Manager discussion. Unfortunately, I was not selected after the HM round, but I found the experience highly beneficial for my future interview preparation.

Full Experience

Round 1: Data Structures & Algorithms

I was asked two medium-level LeetCode problems. The interviewer was flexible, allowing me to use a Word document or an IDE. My approach involved clearly explaining my proposed solution first, and once the interviewer was satisfied, I proceeded to code it and dry-run with a few test cases. Running the code wasn't a mandatory step.

Round 2: Low-Level Design & High-Level Design

This round focused on designing the feeds section of Instagram/Facebook. I started by meticulously gathering requirements and asking numerous questions to define the scope, such as whether posts included only text or images, the information to be stored with each post for data modeling, consistency requirements (I assumed eventual consistency), and various user interaction methods (likes, comments, replies, nested replies, sharing, saving). Next, we discussed database design—what type of database for what kind of data—and I listed out table attributes. Scaling was the next topic, leading to a discussion on caching strategies and eviction policies. The interviewer then asked me to implement the caching logic for an LFU strategy. Fortunately, I had recently studied this, and I was able to write the necessary classes, interfaces, and caching logic. The LLD logic was written on a Word document, but it can vary by interviewer; they are primarily interested in design patterns and adherence to SOLID principles. I'd also recommend using a whiteboard to map out classes, though I knew what I wanted to do and didn't spend much time there.

Round 3: Hiring Manager

This round was heavily concentrated on my resume, with the interviewer asking in-depth questions about every line and technology I had mentioned, lasting for about 1 hour and 40 minutes. A significant portion of the time was spent discussing my projects; I had to explain the problem statement and expect 'why' for every answer I provided. We had extensive discussions about Microservices and monolithic architectures, including suitable systems for each, transition strategies from monolith to microservice, and the rationale behind adopting microservices. Many questions revolved around Kafka and its internals—topics, partitions, consumers, consumer groups, why partitions exist, factors affecting throughput, and the interplay between consumers and partitions. I also faced questions about GraphQL, as I had used it in previous projects, covering why we use it, its advantages, queries, mutations, and resolvers. I was then given a design problem: to create a system that picks tasks from a database and schedules them to run at a specific time. I had to identify all potential bottlenecks, such as queue sizes, partition counts, concurrent database connections, and network issues, to demonstrate my end-to-end debugging capabilities. Lastly, given my performance testing background, the interviewer asked how it was done in my past projects and the various testing types required before a project goes live. This final round was quite challenging, and I couldn't answer all questions, leading to me not being selected after the HM round. Nevertheless, this experience was incredibly valuable for preparing for my next interviews.

Interview Questions (9)

Q1
House Robber II
Data Structures & AlgorithmsMedium

I was asked the House Robber II problem, which involves determining the maximum amount of money you can rob from houses arranged in a circle, preventing any adjacent houses from being robbed.

Q2
Subarray Sum Equals K
Data Structures & AlgorithmsMedium

I was asked the Subarray Sum Equals K problem, which requires finding the total number of continuous subarrays whose sum equals an integer k.

Q3
Design Feeds Section (Instagram/Facebook)
System Design

I was asked to design a feeds section similar to those found on Instagram or Facebook. This involved a comprehensive discussion starting from gathering specific requirements, discussing various post types (text, images), data storage needs, consistency models (I assumed eventual consistency), different user interaction methods (likes, comments, nested replies, sharing, saving), database design, and scaling considerations, with a focus on caching strategies and eviction policies.

Q4
Project Discussion and 'Why' Questions
Behavioral

The hiring manager extensively questioned my resume, focusing on every line and technology mentioned. A significant portion of the discussion revolved around my previous projects, where I was expected to explain problem statements and justify every decision with a 'why'.

Q5
Microservices vs. Monolithic Architectures
Other

I faced in-depth questions regarding Microservices and Monolithic architectures. Topics included identifying the types of systems best suited for each architecture, strategies for transitioning from a monolithic to a microservice architecture, and the fundamental reasons for adopting a microservice approach.

Q6
Kafka Internals and Throughput Factors
Other

A significant number of questions were posed about Kafka and its internals. Specific topics included Kafka topics, partitions, consumers, consumer groups, the rationale behind partitions, factors that affect Kafka's throughput, and how the number of consumers and partitions influence throughput, especially when their numbers vary.

Q7
GraphQL Advantages and Concepts
Other

Given my experience with GraphQL in previous projects, the interviewer asked questions focused on its advantages, why it's used, and core concepts such as queries, mutations, and resolvers.

Q8
Design a Task Scheduling System
System Design

I was presented with a design problem to create a system capable of picking tasks from a database and scheduling them to run at specific times. The task also involved identifying all potential bottlenecks within the system, covering aspects like queueing mechanisms, partitioning strategies, concurrent database connections, and network issues, aiming to assess my end-to-end debugging and system analysis capabilities.

Q9
Performance Testing and Project Go-Live Readiness
Other

Drawing upon my background in performance testing from previous projects, the interviewer inquired about my methodologies for conducting performance tests and the various types of testing crucial for a project to be considered ready before going live.

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!