Walmart Software Engineer III — IOS (IN3) My Interview Experience

Tejaswinimr
4 min readJun 25, 2024

Hello! I recently went through the interview process for a position at Walmart, and I’d like to share my experience. The process was thorough and challenging, encompassing multiple rounds that tested both my technical and problem-solving skills.

Round 1: Data Structures and Algorithms (DSA)

The first round focused entirely on data structures and algorithms. The key problem given was:

Problem Statement:
Given a number n , find the smallest number that has the same set of digits as n and is greater than n . If n is the greatest possible number with its set of digits, then print “not possible”.

Approach:
1. Identify the pivot: Traverse the number from right to left to find the first digit that is smaller than the digit next to it.
2. Find the successor: Traverse the digits to the right of the pivot to find the smallest digit that is larger than the pivot.
3. Swap: Swap the pivot with this successor.
4. Sort: Sort the digits to the right of the pivot in ascending order.

Example:
For \( n = 534976 \):
1. Pivot: 4 (since 4 < 9)
2. Successor: 6 (smallest digit greater than 4)
3. Swap: 536974
4. Sort: 536479

Result: 536479

If no such pivot is found, return “not possible”.

Round 2: iOS Development

The next round was focused on iOS development and included both technical questions and system design.

Key Topics Covered:
Grand Central Dispatch (GCD): Concepts of synchronous and asynchronous tasks, queues, and how to manage concurrent operations.
Access Modifiers:Understanding of `public`, `private`, `fileprivate`, and `internal` in Swift.
Design Patterns: Common patterns like Singleton, Observer, and MVC/MVVM.
Dependency Injection vs. Dependency Inversion: Understanding the principles and how they differ.
API Calls:
Multiple API Calls: Techniques to perform multiple API calls concurrently using GCD or `OperationQueue`.
Sequential API Calls: Using completion handlers or chaining operations to perform API calls one after another.
Persistent Storage: Basics of Core Data, including entities, fetch requests, and the managed object context.
SOLID Principles: How to apply them in Swift.
Unit Testing for Singletons: Writing testable code and mocking singletons for unit tests.
During this round, I was asked to explain different types of initializers in Swift and to provide a code snippet to identify the output.
I was also asked to write my own
compactMap function and extend the Array class to include it as a default function:

Round 3: Hiring Manager (HM) Rounds

I had two rounds with hiring managers, both technical in nature.

First HM Round:

This was a deep dive into my technical skills, focusing on my past projects and how I handled various technical challenges. Here are some of the questions I was asked:

- Identifying Memory Leaks: I explained how to use Xcode’s Instruments tool, particularly the Leaks and Allocations instruments, to detect memory leaks. I also mentioned using static analysis tools and reviewing code for common causes of leaks, such as retain cycles in closures and delegates.
-Handling Customer Complaints About Bugs: I described the process of reproducing the bug first, which involves understanding the customer’s environment and steps leading to the bug. Then, I would check logs, crash reports, and recent code changes to identify the cause.
- Identifying and Resolving Production Crashes: I discussed monitoring tools like Crashlytics and Sentry to gather crash reports and stack traces. Once identified, the process includes analyzing the stack trace, reproducing the crash, and applying a fix followed by thorough testing.
- Current Task Workflow: I detailed the procedure in my current organization, from picking up a task in the sprint planning meeting, breaking it down into sub-tasks, coding, conducting peer reviews, testing, and finally releasing it to production.
- Challenges Faced and Overcoming Them: I shared a specific challenge related to optimizing app performance and how I tackled it by profiling the app, identifying bottlenecks, and refactoring the code.
- Proud Career Moments: I talked about a significant project where I led a team to successfully deliver a complex feature under a tight deadline.
-Staying Updated with Technology: I explained how I regularly read tech blogs, follow industry leaders on social media, attend webinars, and take online courses to stay current.
- Showing Ownership: I provided an example of a feature I owned from ideation to release, including gathering requirements, designing the solution, coding, testing, and handling post-release maintenance.

Second HM Round:

This round was more conversational and included questions about my personal and professional experiences:

-Challenging Situations and Overcoming Them: I reiterated some of the challenges discussed earlier and how I addressed them.
-Unit Testing Skills: I explained my experience with writing unit tests, particularly in scenarios without a dedicated testing team, and the importance of test-driven development (TDD).
-Feature Ownership:I reassured my capability and willingness to take full ownership of features, from development to production support.

Final HR Round

In the final HR round, the discussion focused on:

  • Reason for Leaving Current Job: I explained my desire for new challenges, professional growth, and how Walmart’s values and opportunities align with my career goals.
  • Compensation Discussion: We discussed my current compensation package and my expectations. The HR representative provided an overview of Walmart’s compensation structure, including base salary, bonuses, stock options, and other benefits.
  • Benefits Explanation: The HR representative detailed Walmart’s benefits, which include health insurance, retirement plans, employee discounts, professional development opportunities, and work-life balance initiatives.

Conclusion

The interview process at Walmart was rigorous but fair. It tested a broad range of skills, from core algorithms to iOS-specific knowledge and system design. I appreciated the structured approach and the opportunity to showcase my abilities in different areas.

If you’re preparing for a similar interview, my advice would be to:
- Brush up on DSA concepts and practice coding problems.
- Get comfortable with iOS development basics and advanced topics.
- Understand design patterns and solid principles.
- Be ready to discuss your past projects in detail.

Good luck!

--

--