Interview Experience | SDE | 🔥🔥🔥 | Amazon
2026 Amazon SDE OA - HackerRank | New Format
This Amazon OA felt different from the older format.
The process had three parts:
100 min Coding Challenge → 45 min Work Simulation → 15 min Work Style Survey
Coding was no longer two pure LeetCode questions. One was regular DSA, and the other was a feature fix in an existing repo with an AI assistant built into HackerRank.
At first I thought the second question would be like using Copilot to write code. It was more like getting a small codebase and having to figure out where the code and the bug were. The AI could help inspect the repo, find a method, or look at a test.
Coding Q1 — DSA
The first question was DP.
There were two branch strings, primary and secondary. I had to merge them while preserving the original character order within each string.
If a character with a larger alphabet order appeared before a smaller one, that counted as a conflict. The task was to find the minimum number of conflicts among all valid merges.
For example:
primary = "zc"
secondary = "d"
They can be merged as zcd, zdc, or dzc. The question asks for the minimum number of conflicts.
My first thought was two pointers or greedy. After trying a few examples, I found it hard to make a local choice because picking primary or secondary now affects all the cross-branch conflicts later.
I switched to DP. This did not feel like a standard LeetCode template. The main challenge was separating conflicts already present inside each string from the cross conflicts introduced by the merge.
There were also quite a few edge cases in the hidden tests.
Other candidates have recently reported a very similar Amazon OA branch-merge / minimum-conflicts question. (Reddit)
Coding Q2 — AI-assisted Repository
The second question was nothing like a traditional algorithm problem.
I was given a Movie DB repo and asked to fix its movie notification feature.
The rough requirement was that after an admin adds or launches a movie, any user following any star in that movie should get a notification.
There was also a bug in unread count. It was not counting the current user's unread notifications.
The HackerRank pane had an AI assistant. The instructions explicitly said I could use it to inspect the existing code, find the right file or method, and run the predefined tests after making changes, but not to rewrite unrelated code.
I first asked it to find where a movie was saved, where the notification service was, how follow relationships were stored, and where unread count was calculated. The repo was not that big, and I found AdminMovieController fairly quickly.
Both the add-movie and launch-movie paths eventually saved the movie. The core fix was to trigger the notification after the movie was successfully saved. I injected NotificationService into the controller, then called notifyFollowers(savedMovie) after movieRepository.save(movie) in both paths.
You have to fix both paths; it is easy to fix add and miss launch.
I only changed one path at first. A test still failed, and then I found that launch had a separate path too.
The unread-count bug was more direct. The old logic was effectively counting unread notifications in the whole table, but the UI needed the current user's unread count. The user identity had to flow into the query or service, which should count only that user's notifications where read = false.
I do not think the hard part was the code itself. The code changes were probably only a few lines.
The hard part was understanding the unfamiliar repo within 60 minutes:
controller → service → repository → model → test
The AI did not always point me in the right direction the first time. Once I asked too broadly and it suggested changing the notification model, which was unnecessary. Later I gave it the failing test and the relevant method and asked it to trace the call path. That was much more useful.
After the changes, I ran the predefined tests. The main things I checked were:
- Does adding a movie notify followers?
- Does launching a movie notify them too?
- If one user follows multiple stars in the same movie, do they get duplicate notifications?
- Does unread count stay separate for each user?
Other Amazon OA candidates have also mentioned this Movie notification repo, including a bug where followers should be notified when an actor has a new movie.
Work Simulation
After coding, there was a 45-minute Work Simulation.
This part was not coding. It gave realistic SDE work situations: a feature close to launch without enough test coverage, a teammate's plan that might introduce risk, a production issue whose root cause was not yet clear, or several tasks competing for priority.
Each scenario gave a few possible actions and asked which response was better.
It felt like Amazon LPs tested in another format. Instead of asking me to memorize “Customer Obsession / Ownership / Dive Deep,” it gave me a situation and asked what I would actually do.
I tried to keep my answers consistent. Some questions changed the scenario but seemed to ask about the same trade-off, such as how to balance a deadline with quality.
Work Style Survey
The last part was a 15-minute Work Style Survey.
It was more straightforward. The statements were along the lines of:
“I usually…”
“When things are uncertain, I tend to…”
“I proactively take ownership of problems outside my scope…”
Many statements came back with slightly different wording.
I did not spend too long on each one and mostly went with my first reaction. The more I overthought them, the easier it was to contradict an earlier answer.
Overall Impression
The biggest change in the newer OA format was the second coding question.
Preparing for Amazon used to feel like mostly grinding problems. Now I think it also helps to practice reading an unfamiliar codebase, debugging, and using AI for repository navigation.
The AI-assisted task was not asking the AI to do everything for me. It felt more like checking whether I could use AI as a coding tool, decide for myself where the change belonged, and keep the fix to the minimum necessary.
The first DSA question still calls for regular medium/hard practice.
For the second one, I would also pick a small Spring, Django, or Express project and practice:
failing test → find the controller/service/repository → use AI to trace the code → make a small change → rerun the tests.
That seems more targeted than doing 20 more LeetCode problems.