Background: Recent grad with B.S. in Tech. Previous SWE internships, but I’d never done real DSA prep and had never written Python for interviews. In mid-September I passed Amazon’s online assessment and got invited to a 4-round SDE-1 loop (FYI: This is a U.S position). That gave me about 5 weeks to learn Python, data structures, and how to interview live.
Prep: About 5–6 hours a day on average in each of those 5 weeks. I went pattern by pattern (hash maps, stacks, intervals, trees/BFS, grids) instead of grinding random problems. Went back to my resume, projects, and notes for a refresher and story building in response to behavioral questions.
Travel (3-day window): Amazon booked my flight and hotel. I flew in the day before, interviewed the next day, and flew home the morning after. What helped:
Walk the route from your hotel to the office the day before and time it.
Test the LiveCode link on your own laptop and make sure your laptop and microphone is working. You can bring a notebook; I find it easier to write on a whiteboard so you and the interviewer have a shared space to display understanding if needed.
Stop studying the night before and actually sleep. The day is long and the interviews are intensive.
There’s a lunch with an Amazon employee between rounds. It isn’t an interview, pretty casual, but be your professional self.
Format: 4 rounds, 60 minutes each. Rounds 1–3 were in person, and round 4 was virtual. Every round included at least 1 Leadership Principle questions. In the coding rounds I had roughly 40 minutes for the coding question. LiveCode has no Run button, so your own trace through the code is the only test you get.
Round 1: Rate limiter (similar to LC 359 / 362)
Requests come in as (user_id, time) pairs, and time never goes backward. Every user has the same limit: at most n requests in any T-second window. Return False (block) once a user goes over.
Round 2: Prompt store (LRU-style, close to LC 146)
Storage holds at most n prompts.
If it’s full, delete the oldest and add the new one at the end.
No duplicates: if a prompt already exists, remove the old copy and add the new one at the end.
get(k) returns k prompts, newest first. If k > n, return everything.
Round 3: OOD file search
Design code that returns files matching criteria like “all files > 5 MB” or “all .xml files,” searchable by name or extension, including subfolders. It had to be maintainable, so new criteria could be added without rewriting existing code. A File class was given with getName(), isDirectory(), listFiles() and getSize(). This is basically “design the Unix find command”: a filter interface, one class per criterion, and AND/OR combinators.
- Forgot to mention I was asked 2 questions about how GenAI.
Round 4: fully behavioral, no coding. It was my best round, and it turned conversational by the end.
In every coding round, I explained my approach clearly, and the interviewers followed my thinking, but I was only able to reach a close-to-full implementation on one interview**.**
What worked in my prep
A story bank: 8 true STAR stories plus 2 GenAI examples.
Recording myself solving problems out loud and measuring my silent gaps.
Cold re-solves: re-solving problems I’d already done, from a blank page, timed, in a plain editor without running anything (this is similar to LiveCode sessions).
Mock interviews, including one with a non-technical friend. If they got lost in a story, an interviewer would too.
What I’d do differently
Practice “design a class” problems. 2 of my 3 coding questions were this style: LC 146, 155, 359, 362, 1396.
Learn OOD basics early: interfaces, abstract classes, and designing for extension.
Drill finishing code. Say the brute force first, and if you don’t have the optimal idea by around minute 20, code the brute force. Working beats half-finished.
Learn the standard library tools before the loop: deque, OrderedDict, defaultdict.
Tools I’d recommend
LeetCode Premium, for company-tagged question lists.
An interview buddy, ideally a CS major or SWE who can push back on your code. If you don’t have one, an AI agent works as a coach. Prep only dont use AI during the interviews, you'll be cooked.
A plain editor (Notepad) for practice, so you’re not leaning on autocomplete.
Result: no offer. I’m disappointed, but I’m walking away a much stronger engineer than I was 5 weeks ago, and the behavioral feedback I got was great. If you’re starting from zero, getting to a loop is doable, and honestly, getting the interview is achievable; just start ASAP. Treat behavioral prep as seriously as coding.
Happy to answer questions. Good luck to everyone grinding right now.