Walmart · Software Engineer
Updated · 2026-09-24

Walmart Software Engineer
Interview Guide

THE 60-SECOND BRIEF

As a Software Engineer at Walmart, you build and optimize systems that operate at a global scale. Walmart Global Tech powers the technology infrastructure for the world's largest retailer, supporting over 240 million customers weekly across physical stores, Sam's Club locations, and digital e-commerce platforms. Software engineering teams directly drive revenue, supply chain accuracy, inventory availability, and customer checkout experiences across both domestic and international markets.

Scope in the operational half of the job when the seat carries on-call. Rollout, rollback and what you would put on a dashboard belong inside a design answer rather than after it, and an answer that never reaches them reads as someone who has built systems but not run them.

Walmart candidates report 3 rounds · ≈ 3-5 weeks. The stages below are what candidates describe, not a published process.

Model variant attributes without wide tables or EAVMake checkout idempotent from cart to captureReconcile payment state after timeouts instead of retrying

36 min read

Browse Software Engineer questions

See the practice prompts

14Practice promptsAcross five skill areas
3With worked solutionsIncluded in the practice prompts

As a Software Engineer at Walmart, you build and optimize systems that operate at a global scale. Walmart Global Tech powers the technology infrastructure for the world's largest retailer, supporting over 240 million customers weekly across physical stores, Sam's Club locations, and digital e-commerce platforms. Software engineering teams directly drive revenue, supply chain accuracy, inventory availability, and customer checkout experiences across both domestic and international markets.

You will contribute to critical enterprise technology domains such as Catalog Engineering, FinTech Data Solutions, Enterprise Business Services (EBS), and International Store Operations. Engineers in these spaces design high-throughput microservices, maintain event-driven streaming architectures, and implement intelligent data pipelines that connect disparate supply chain data sources. The technical challenges you face at Walmart require balancing extreme throughput, low latency, and rock-solid availability.

Whether you are developing next-generation seller integration APIs, optimizing high-traffic catalog databases, or building distributed key-value caches, your work directly touches millions of lives daily. offers an environment where complex distributed systems challenges meet real-world operational scale, making this role both technically demanding and deeply impactful.

01

Recruiter Call

reported

Before anything technical happens, someone has to decide which rung of the ladder your loop is calibrated to, and that decision sets the bar for every round after it. It comes from how you describe scope, not from your title, because titles do not convert cleanly between companies. The weak version of the answer is team size and years. The strong version names the largest change you shipped where nobody reviewed the design, what would have broken if you had been wrong, and what you were paged for. Get the level said out loud on this call, because the range and the loop both follow from it.

What to demonstrate

  • Whether the scope in your own account maps onto a level the team actually has an opening at, so a mismatch ends the process cheaply rather than after four interviewers have spent a day
  • Whether your title needs re-mapping: the same word describes very different amounts of independent decision-making at a twenty-person company and a ten-thousand-person one
  • Whether your compensation expectation can be filled at that level in the structure the role pays in, which is why the number gets asked for before any engineer is scheduled

How to prepare

  • Write down two changes from the last two years: the largest one you designed with nobody reviewing the design, and the largest one where someone more senior did. Lead with the first when scope comes up, and be ready to say which parts of the second were yours
  • Ask which level the loop is calibrated to and what changes at the level above it, then plan your weeks from that answer rather than from the posting
  • Settle a total-compensation range beforehand with the split named, base against bonus against equity and its vesting period, so a question about numbers gets a number instead of the word market
PracHub interview research ↗
02

Technical Screening

reported

The same problem is scored by two different mechanisms depending on the format, and preparing for one does not cover the other. With a person watching, partial progress is visible and a hint is a correction you can absorb; silence is the expensive failure, because nobody can read a half-written function. With an automated grader there is no partial credit for what you were about to do, nobody to ask, and the worked examples in the prompt are the entire specification. Read them as a contract, down to whether an empty result should be an empty list or no output at all.

What to demonstrate

  • In a live session, whether your commentary tracks what your hands are doing, and whether a hint redirects you or gets defended against
  • In an automated one, whether you cover the cases the examples do not show, since the hidden cases are where the score moves
  • Whether you manage the clock on purpose: abandoning an approach that is not converging while there is still time to write something simpler that finishes

How to prepare

  • Have someone hand you a problem and feed you one deliberately wrong hint. Practise testing it against a concrete case instead of accepting or rejecting it on authority.
  • Do one timed run a week in a plain browser editor with autocomplete, linting and your own snippets switched off, which is closer to what these environments give you
  • For the automated format, write the harness before the solution: a main that feeds the worked examples plus an empty and a single-element case and prints expected against actual, so a wrong submission is caught by you first
PracHub interview research ↗
03

Virtual Loop

reported

Nobody in the room with you decides this. Interviewers typically write their rounds up separately, often before seeing anyone else's, and the outcome is settled later from those write-ups. A split panel gets resolved by whichever note carries specific evidence, so what you want out of each room is one concrete thing that person could write down: a bug you caught yourself, a trade-off you named, a decision you owned. The rest is arithmetic. The project you describe in a behavioural conversation is often the same system you sketched an hour earlier, and the two accounts have to agree.

What to demonstrate

  • Whether the scale, team size and timeline you attach to a project hold steady when that project resurfaces in a different round
  • Whether each interviewer leaves with a specific thing to cite rather than a general impression of competence
  • Whether a trade-off you defended in one round survives a challenge in another, instead of being quietly swapped for the answer the new interviewer seemed to want
  • Whether a question you have already answered earlier in the day gets the same answer at the same depth, without visible impatience

How to prepare

  • Write a one-page sheet per project fixing the figures you will quote — request volume, data size, team size, elapsed time, what broke — and say them aloud from the sheet until they come out identical every time
  • For each round on the schedule, decide in advance the one sentence you want in that person's notes, then check in a mock that you said it outright instead of leaving it to be inferred
  • Have someone ask you the same project question twice, an hour apart, and diff the two answers for numbers that moved or a trade-off that reversed
PracHub interview research ↗

PracHub editorial advice for the preparation topics above.

01

Applying order state changes as blind writes when events arrive at-least-once and out of order

A cancel request and a 'picked' event travel different paths with no shared ordering, and a message bus that guarantees at-least-once delivery will redeliver either one after a consumer crash. Read-modify-write handlers then let the later writer win arbitrarily, so you ship a cancelled order or refuse to cancel one still sitting on a shelf, and both outcomes are expensive. Every transition needs to be a compare-and-set on the expected current state with an explicit branch for zero affected rows, plus a processed-event table keyed on the producer's event id so that a redelivery is a no-op rather than a second application. Exactly-once delivery is not available over an unreliable network; at-least-once delivery combined with idempotent effects is, and conflating the two is what produces handlers that are correct only on the first run.

02

Representing money as floating point, or rounding tax at a different grain than the total is computed at

Binary floating point cannot represent most decimal fractions exactly, so sums over thousands of lines drift and two services computing the same total from the same inputs disagree in the last place. Rounding grain is the subtler half: rounding tax per line and summing gives a different total than computing tax on the order subtotal and rounding once, and the difference is a cent or two per order — small enough to pass every test and large enough to make the payment provider's amount, the invoice and the finance ledger disagree at month end. Store minor units as integers, and treat the rounding rule as a specification that is applied at exactly one point, propagated everywhere else, and pinned by a CHECK constraint on the order total; which rule is required is jurisdiction-specific, so the engineering obligation is consistency and explicitness rather than a single universal choice.

03

Optimising an axis nobody named

Ask which resource is actually scarce here: wall-clock latency, throughput, memory footprint, cost per request, or engineering time. Shaving a constant factor off an in-memory step is wasted effort when the same function makes a blocking remote call inside the loop.

04

Choosing a schema before the access patterns are known

Write the queries first, with their filters, sort orders, cardinalities and which ones sit on the latency-critical path, then design tables and indexes to serve them. An index nothing queries still costs write throughput and storage, and a hot query with no supporting index becomes a full scan that only hurts once the table is big.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

11 technical prompts3 include a worked solution

Solve a grid-based breadth-first search (BFS) problem to calculate sho…

medium
data structures and algorithms

Solve a grid-based breadth-first search (BFS) problem to calculate shortest distances or propagation times (similar to grid traversal or matrix infection patterns).

Approach
  1. State the target complexity and say which constraint rules the naive version out.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
Follow-up
  • What is the worst case, and how likely is it on real data?
  • Which test case would catch an off-by-one here?

Given an array of integers and a target sum, identify unique combinati…

medium
data structures and algorithms

Given an array of integers and a target sum, identify unique combinations that sum to the target using dynamic programming.

Approach
  1. State the target complexity and say which constraint rules the naive version out.
  2. Walk one small example through your approach before writing the whole thing.
  3. Name the brute-force solution and its complexity before improving on it.
Follow-up
  • How does this change if the input no longer fits in memory?
  • What is the worst case, and how likely is it on real data?

Given daily temperature recordings, find the number of days until a wa…

medium
data structures and algorithms

Given daily temperature recordings, find the number of days until a warmer temperature occurs using a monotonic stack.

Approach
  1. Name the brute-force solution and its complexity before improving on it.
  2. Walk one small example through your approach before writing the whole thing.
  3. State the target complexity and say which constraint rules the naive version out.
Follow-up
  • What is the worst case, and how likely is it on real data?
  • Which test case would catch an off-by-one here?

Given two sorted arrays, calculate the median of the merged array in l…

medium
data structures and algorithms

Given two sorted arrays, calculate the median of the merged array in logarithmic time.

Approach
  1. Choose the data structure from the access pattern, not from familiarity.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Walk one small example through your approach before writing the whole thing.
Follow-up
  • How does this change if the input no longer fits in memory?
  • What is the worst case, and how likely is it on real data?

Compute peak attempt rate per variant over a sliding window

mediumWorked solution
sliding windowtwo pointersevent stream

Given one day of reservation attempts as (timestamp_ms, variant_id) — up to 300 million events across two million variants, arriving in timestamp order — compute for each variant the maximum number of attempts falling inside any 60-second sliding window, plus the start of the earliest window achieving it. The window is continuous, not a tumbling bucket. Give an algorithm linear in the number of events after grouping, with bounded memory per variant, and say precisely what that memory is bounded by.

Approach
  1. Group by variant_id, then run two pointers over each group's timestamps: advance the right pointer one event at a time and advance the left while t[right] - t[left] >= 60000, with the count being right - left + 1. Neither pointer moves backwards, so each group costs O(n_v) and the whole job is O(n) after grouping — the partition or sort is the only superlinear step in the pipeline.
  2. Justify examining only n windows: the maximum can always be attained by a window whose left edge sits on an event, because sliding a window without crossing an event cannot change its count. That is the step candidates skip and then cannot defend when asked why n windows suffice over continuous time.
  3. For the streaming form, hold a deque of timestamps per active variant and pop from the front while the front is older than 60 seconds. Memory per variant is bounded by the peak window count rather than by the day's event count — a variant at 1,000 attempts per second holds at most 60,000 timestamps, about 480 KB at 8 bytes each, and that is the number to quote when asked whether the job fits.
  4. Say why tumbling buckets are not a substitute, with the concrete case: 100 attempts at t = 59.9s and 100 at t = 60.1s give a tumbling maximum of 100 against a true sliding maximum of 200. The understatement can reach a factor of two, which is the difference between tripping an admission-control threshold and sailing past it.
  5. Complexity: O(n) after grouping, O(peak window count) space per active variant. Evict variants with no event in the last 60 seconds so the live map stays proportional to concurrently active variants rather than to the two-million-variant catalogue.
Worked solution 20 min
  1. Construct one variant's timestamps by hand with a burst deliberately straddling a bucket boundary, and compute both the tumbling and sliding answers on paper.
  2. Implement the two-pointer sweep and confirm it reproduces the paper sliding figure.
  3. Implement the tumbling version, confirm it reports the smaller number, and keep that gap as a regression test.
  4. Run over 10 million events across 100,000 variants, then halve the input and compare wall times to confirm linearity.
EXPECTED RESULTThe sliding maximum is 200 for the planted straddling burst where tumbling reports 100. The reported window start is the timestamp of a real event, and the window is half-open over 60,000 ms.
Follow-up
  • Events can arrive up to five seconds late. What do you buffer, what do you emit, and what happens to an event that is twenty seconds late?
  • You need peaks over both 60-second and 5-minute windows. Do you pay twice?
  • This result feeds a token bucket that throttles the variant. Describe the feedback loop you have just created.

For someone who has spent the last few years shipping features and reading other people's code, and who has not solved a timed problem from a blank file in a long time. Five days rebuild the primitives and the patterns that sit on them, working from invariants rather than remembered solutions, and the last two attach that back to the rest of the loop.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Rebuild the primitives by implementing them
  • Implement a dynamic array with doubling growth and an operation counter, then change the growth rule to add a fixed sixteen slots instead, and time both for n of ten thousand, a hundred thousand and a million. The fixed-increment version resizes n/16 times at O(n) each, so its total work is quadratic; doubling is what makes append amortised constant.
  • Implement a hash map with separate chaining and a load-factor resize, then insert ten thousand keys engineered to land in one bucket and record what happens to lookup time, so that average-case O(1) becomes a claim with a stated precondition rather than a reflex.
  • For dynamic-array append and hash-map insert, write down which cost is amortised rather than worst-case, which single operation pays the whole bill, and what a system with a hard per-operation deadline would have to do instead.

Deliverable: Two working implementations plus a timing table showing the input at which each structure's advertised complexity stops holding.

Practice prompt ↗Practice prompt ↗Worked solution ↗
02Arrays under an invariant: two pointers, sliding window, binary search
  • Solve longest-subarray-with-sum-at-most-K using a sliding window, then run it on an input containing negative numbers and watch it return the wrong answer: extending the window only moves the sum monotonically when every element is non-negative, and that precondition is the whole reason the technique works.
  • Write the binary search that finds the first index satisfying a predicate rather than an exact value, put the loop invariant above the loop in a comment, and verify termination on the two inputs that break careless versions: the empty range, and a range where every element satisfies the predicate.
  • Compute the midpoint as lo + (hi - lo) / 2 and write one line on why the obvious (lo + hi) / 2 is a genuine defect in a fixed-width integer type and a non-issue in a language with arbitrary-precision integers.

Deliverable: Three solved problems, each with its invariant written above the loop, plus one recorded input on which the sliding window is provably wrong.

Practice prompt ↗Practice prompt ↗
03Sorting, heaps, and the greedy argument that has to be proved
  • Solve one top-k problem three ways, by full sort, by a size-k heap, and by quickselect, then write the values of n and k at which each becomes the right choice, along with quickselect's quadratic worst case and why a randomised pivot makes that unlikely rather than impossible.
  • Implement bottom-up heapify and count sift-down steps to confirm it does linear work rather than n log n, because most nodes sit near the bottom of the tree and therefore move only a short distance.
  • Take interval scheduling by earliest finishing time and write the exchange argument out in full: given any optimal schedule, swapping in the earliest-finishing interval keeps it feasible and no smaller. Then construct the weighted variant where that same greedy fails and name what has to replace it.

Deliverable: A three-way top-k comparison with measured crossover points, one written exchange argument, and one counterexample to a greedy rule that looks almost identical.

Practice prompt ↗Practice prompt ↗
04Recursion, memoisation, and the step to a table
  • Take one problem with overlapping subproblems, such as edit distance or coin change, instrument the plain recursion with a call counter to show the blow-up, then add memoisation and re-count.
  • Convert the memoised version to a bottom-up table and state the two properties you relied on: each subproblem's result depends only on its arguments, and the dependencies form a DAG you can enumerate in order.
  • Rewrite one deep recursion with an explicit stack, then find the input length at which the original hits the interpreter's frame limit, which defaults to about a thousand frames in CPython, so you know when the rewrite is required rather than decorative.

Deliverable: One problem in three forms, naive, memoised and tabulated, with call counts for each and the input length at which recursion depth becomes the binding constraint.

Practice prompt ↗Practice prompt ↗Worked solution ↗
05Graphs, where most of the work is choosing the traversal
  • Implement BFS and DFS over one adjacency list, then answer for each which finds a shortest path in an unweighted graph and which you would use to detect a cycle in a directed graph, including why the in-progress versus finished distinction matters for the second.
  • Implement topological sort by in-degree, feed it a graph containing a cycle, and confirm the failure signature is that fewer than V nodes come out rather than an exception, then note that the order it produces is one of several valid ones.
  • Run a shortest-path search on a graph with a single negative edge weight and show the wrong answer, then write the precondition Dijkstra actually needs, non-negative weights, because it finalises a node's distance the first time that node is popped, and name the algorithm you would switch to and its own limit.

Deliverable: A small graph library with BFS, DFS and topological sort, plus two inputs that produce documented wrong answers under the wrong algorithm choice.

Practice prompt ↗Practice prompt ↗
06One day for everything that is not an algorithm
  • Sketch one system only to the depth a coding-heavy loop tends to reach: the endpoints, what the service stores, and the single query pattern that decides the schema. Stop at twenty-five minutes.
  • Prepare the project answer for an interviewer who codes, which means rehearsing the two levels they push to: the specific thing you built, and why you chose that approach over the alternative they will name. Open with a number and be ready to say what it excludes.
  • Prepare the answer to what you would do differently, choosing a real technical mistake with a specific fix rather than a complaint about process or staffing.

Deliverable: One design sketch at endpoint-and-schema depth, plus a project answer rehearsed to two levels of follow-up.

Practice prompt ↗Practice prompt ↗
07Solve out loud, under time
  • Do three timed problems at twenty-five minutes each in a plain editor with no autocomplete and no execution until the end, then tally separately the failures that were syntax and the ones that were approach, because those two numbers call for different fixes.
  • Narrate one solution from the first sentence, stating the approach and its complexity before writing any code, and rehearse the sentence you will use when you realise mid-solution that the approach is wrong.
  • Re-solve from blank the two problems you were slowest on this week and compare the times against the day they first appeared.

Deliverable: A recording of one fully narrated solution and a tally that separates syntax failures from approach failures.

Practice prompt ↗Practice prompt ↗Worked solution ↗

Expand any day for tasks and deliverables. Your progress is saved on this device.

Every story you tell gets read for blast radius and judgement: what could have broken, who else it touched, what you knew at the moment you decided. Nobody can audit your code in an hour, so they audit your reasoning instead. Pick work where the call was genuinely yours and the consequences were real enough to remember.

How do you collaborate with cross-functional partners and newly integr…

medium
behavioural and engineering judgement

How do you collaborate with cross-functional partners and newly integrated team members during major architectural transitions?

Approach
  1. State the situation in two sentences and spend the rest on the reasoning.
  2. Close with what you would do differently, concretely.
  3. Pick a story where you made the decision, not one where you watched it.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Describe a challenging incident in a past engineering role and detail …

medium
behavioural and engineering judgement

Describe a challenging incident in a past engineering role and detail your step-by-step approach to root-cause analysis and resolution.

Approach
  1. State the situation in two sentences and spend the rest on the reasoning.
  2. Name the disagreement and how you resolved it with evidence.
  3. Pick a story where you made the decision, not one where you watched it.
Follow-up
  • What did you decide not to do, and why?
  • What would you do differently if you ran that again?

Reverse a sharded inventory counter after production contradicts it

medium
sharded countersreversalfalse negativesreconciliation

You proposed sharding the hot variants' inventory row into sixteen sub-rows to survive drops, and it shipped. Two weeks later support reports items showing as unavailable while units sit on the shelf, and the remaining-count figure disagrees with the warehouse. Describe a decision you reversed after production contradicted it: the signal that changed your mind, what you measured before acting, how you unwound it without causing a second incident, what you kept from the original change, and how you told the people who had backed the original proposal.

Approach
  1. Name the failure mode of your own design rather than treating the reports as mysterious. With random shard selection, units strand in shards nobody selects, so a request can fail while the total is non-zero, and the false-negative rate rises as the tail drains. Separately, the remaining count is now a SUM over sixteen rows that is never a consistent snapshot, which is why it disagrees with the warehouse.
  2. Measure before reversing, because the reversal is itself a change with risk. Two numbers decide it: the distribution of units across shards for hot variants over time, and the count of reserve failures where the SUM across shards was greater than the requested quantity. The second number is the bug, quantified.
  3. Consider repair before reversal honestly. A miss that falls through to other shards removes the stranding but reintroduces contention exactly on the variants you sharded for, which is a real cost, so say which one you chose and why rather than presenting reversal as obvious.
  4. Narrow the blast radius instead of choosing globally. Sharding is only needed for a few hundred variants for a few hours a quarter, so the defensible landing is a per-variant flag that shards on the way into a drop and consolidates on the way out, which keeps the mitigation and deletes the permanent cost.
  5. Unwind carefully: consolidate the shards back into one row inside a single transaction, assert that the sum before equals the value after, do it behind the flag one variant at a time, and keep the CHECK constraint in place throughout so a mistake becomes a failed statement rather than an oversell.
  6. Say what you kept — usually the parts that were load mitigation rather than correctness changes, such as request coalescing on the availability read and admission control in front of checkout — and describe how you told the people who had supported the proposal, because a reversal handled badly costs you the next proposal.
Follow-up
  • How do you consolidate shards while traffic is live without freezing sales on that variant?
  • The next drop is in six days. Do you ship the per-variant flag or go unsharded and risk the contention? Argue it with numbers.
  • What would you have measured before the original rollout that would have caught stranding in staging?
  • 01

    How do you collaborate with cross-functional partners and newly integrated team members during major architectural transitions?

  • 02

    Describe a challenging incident in a past engineering role and detail your step-by-step approach to root-cause analysis and resolution.

  • 03

    You proposed sharding the hot variants' inventory row into sixteen sub-rows to survive drops, and it shipped. Two weeks later support reports items showing as unavailable while units sit on the shelf, and the remaining-count figure disagrees with the warehouse. Describe a decision you reversed after production contradicted it: the signal that changed your mind, what you measured before acting, how you unwound it without causing a second incident, what you kept from the original change, and how you told the people who had backed the original proposal.

PracHub interview preparation framework ↗
Is this an official Walmart interview guide?

No. It is PracHub's own research and practice material for the Software Engineer role at Walmart. Rounds and questions reflect what candidates have reported, not a process Walmart has published, and they change over time. Confirm the current format and scope with your recruiter.

PracHub interview research ↗
How difficult are the coding rounds compared to other major tech companies?

The coding questions at Walmart generally range from medium to hard complexity. Interviewers place a heavy emphasis on clean code structure, correctness, and your ability to explain time and space trade-offs clearly during live coding sessions.

PracHub interview research ↗
What programming languages am I allowed to use during the interview?

For algorithmic coding rounds, you can typically choose any language you are comfortable with, including Java, Python, C++, or JavaScript. However, for backend-specific LLD rounds, using Java is strongly encouraged due to the heavy enterprise focus on Java and Spring Boot.

PracHub interview research ↗
What is the structure of the Karat technical screening?

The Karat interview is a 60-minute session comprising 10 minutes of technical knowledge questions (covering language fundamentals, multithreading, and system concepts) followed by 50 minutes devoted to solving two algorithmic coding problems with a live interviewer.

PracHub interview research ↗
How long does it take to hear back after completing interview rounds?

Feedback timelines vary by region and recruitment volume. While candidates often receive technical screening feedback within a few days, post-onsite decisions can take anywhere from a few business days to two weeks depending on team match requirements.

PracHub interview research ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.