Walmart || SE3 || Interview Experience || Software Engineer 3 Bangalore

walmart logo
walmart
software engineer 3bangalore2.5 yearsOffer
November 28, 20240 reads

Summary

I recently interviewed with Walmart for a Software Engineer 3 position in Bangalore, completing four rounds covering DSA, Low-Level Design, Hiring Manager questions, and HR. I'm pleased to share that I received an offer.

Full Experience

I recently completed an interview process with Walmart for a Software Engineer 3 role in Bangalore, which was structured across four distinct rounds.

Round 1: Data Structures and Algorithms

The first round focused on my DSA skills, and I was asked to code in Java, even though I generally prefer C++ STL for competitive programming. The interviewer had me write the code directly in Notepad. I was given two problems:
  • First, to find the sum of elements in a tree, specifically stating that the sum should be calculated as sum = leftsum + rightsum + currsum. This was a fairly straightforward tree traversal problem.
  • Second, I had to implement a function to insert linkedlist2 into linkedlist1 at the nth position, ensuring I handled all possible edge cases carefully.

Round 2: Low-Level Design (LLD)

This round challenged me to design a library capable of invoking REST calls to external systems. The requirements were quite detailed:

Functional Requirements:

  1. The library should provide clients with methods to invoke both POST and GET calls.
  2. It must allow clients to select their preferred underlying HTTP client implementation during invocation, offering choices like Spring RestTemplate, Apache HTTP Client, or OkHttp client.

Non-Functional Requirements:

  1. The design needed to strictly adhere to Object-Oriented Programming (OOP) principles and SOLID principles.
  2. It should be easy to add new HTTP client implementations in the future.
  3. The code produced should be thoroughly unit testable.

During the design discussion, I faced several probing follow-up questions:

  • I was asked about which design patterns I would use.
  • The interviewer questioned my choice of the Factory pattern, asking why not Strategy, and if the Composite pattern could be applied.
  • A classic question on when to use Factory versus Strategy patterns was posed.
  • Finally, a tricky scenario: an existing interface has three abstract methods, two concrete implementations are already in production, and a new implementation only needs to implement two of these methods. I had to explain how I would handle this without breaking existing code or introducing unnecessary complexity.

Round 3: Hiring Manager (HM) Round

The third round was with a Hiring Manager and covered a broad range of topics, from career aspirations to technical deep-dives into my past work and general system design principles:
  • I was asked about my five-year career plan.
  • How I would handle a situation where a team member isn't cooperating.
  • I had to explain the complete architecture of a significant feature I developed in my previous role.
  • This was followed by questions specifically about the unit test cases for that feature.
  • We discussed how to scale a system from handling 100 requests per second to 1 million requests per second.
  • I had to justify my choice of a SQL database for a particular feature.
  • The interviewer asked how I would implement rate limiting.
  • I was also challenged to design a system for automatic alerts based on error messages.
  • My approach to checking and identifying bugs was questioned.
  • Finally, we discussed my process for conducting and maintaining effective code reviews.

Round 4: HR Round

The final round was a straightforward HR discussion, covering basic HR-related questions.

I am happy to report that I received an offer from Walmart. My current compensation for 2.5 years of experience is 25.5 CTC (20.5 Base, 2 Variable, 3 Joining Bonus). The offer from Walmart is 25 Base, 5 annual bonus, and 6L RSUs over 3 years.

Interview Questions (13)

Q1
Sum of Elements in Tree
Data Structures & AlgorithmsEasy

Given a binary tree, find the sum of all elements in the tree. The sum should be calculated as sum = leftsum + rightsum + currsum.

Q2
Insert LinkedList at Nth Position
Data Structures & AlgorithmsMedium

Given two linked lists, linkedlist1 and linkedlist2, insert linkedlist2 into linkedlist1 at the nth position. Ensure all edge cases are handled (e.g., n is 0, n is greater than the length of linkedlist1, linkedlist2 is empty).

Q3
Design a REST Call Invocation Library
System DesignHard

Design a library capable of invoking REST calls to external systems. The library should:

Functional Requirements:

  1. Provide clients with methods to invoke POST and GET calls.
  2. Allow the client to select the choice of underlying HTTP client implementation during invocation (e.g., Spring RestTemplate, Apache HTTP Client, OkHttp client).
Non-Functional Requirements:
  1. The design should adhere to OOP principles and SOLID principles.
  2. It should be easy to add new HTTP client implementations.
  3. The code should be unit testable.

Follow-up questions on the design included:
  • Which design patterns should be used?
  • Justify the choice of Factory pattern, and discuss why Strategy or Composite patterns might not be suitable.
  • When to use Factory vs. Strategy pattern.
  • How to handle a scenario where an existing interface has 3 abstract methods, two concrete implementations are in production, and a new implementation only needs to implement 2 of these methods.

Q4
Career Goals (5 Years)
Behavioral

Where do you see yourself in the next 5 years?

Q5
Handling Uncooperative Teammates
Behavioral

What do you do when a team member (or 'friend' in a work context) doesn't cooperate?

Q6
Explain Project Architecture
System Design

Explain the complete architecture of a feature you worked on in your previous role.

Q7
Unit Test Cases for Feature
Other

Discuss the unit test cases for the feature whose architecture was just explained.

Q8
Scaling from 100 to 1M Requests
System DesignHard

How would you scale a system from handling 100 requests per second to 1 million requests per second?

Q9
SQL Justification for Feature
System Design

Justify the choice of SQL database for your feature.

Q10
Rate Limiting Design
System DesignMedium

How would you design and implement rate limiting?

Q11
Design Error Message Alerts
System DesignMedium

How would you design a system for automatic alerts based on error messages?

Q12
Debugging Strategies
Other

What are your strategies for checking and identifying bugs?

Q13
Code Review Process
Behavioral

How do you conduct and maintain effective code reviews?

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!