Guides

Interview practice guides

These notes are original practice material. amazon-oa.com is not affiliated with or endorsed by Amazon. The examples were written for this page. They are not confidential assessment content, and they are not a forecast of what any interview will ask.

This library is original writing for interview practice. It sits next to the homepage, which only links out to public discussions. Nothing here is copied from those discussions, and nothing here is an official question list.

Use the four-week plan if you want a sequence. Use a pattern page when you already know what feels shaky. Each coding page has a small Python example, a complexity note, and the kind of edge case that usually breaks a first draft. Read the code, then reimplement it without looking.

Formats change by role, level, team, and year. When a page talks about an online assessment, it is describing patterns candidates have discussed in public, not a specification. If a recruiter email describes your assessment, that email wins.

Start here

Coding patterns

  • Arrays and hashing

    Reach for a map when a nested scan is only there to remember something you already saw.

  • Two pointers

    Move two indexes in a disciplined way when a full pair scan would repeat the same work.

  • Sliding window

    Maintain a contiguous slice in one pass when the answer is a stretch of the array, not a scattered subset.

  • Binary search

    Cut a sorted range in half, but only after you can say which half is still possible.

  • Stacks and queues

    Use a stack when the most recent unmatched thing matters, and a queue when the oldest waiting thing should go next.

  • Trees

    Recursion follows a parent to its children. A queue walks a tree level by level. Know which walk you are doing.

  • Graphs, BFS, and DFS

    The moment a structure can contain a cycle, mark nodes as visited or the walk will never end.

  • Heaps and top-k

    A heap keeps the current winner at the front so you can ignore the rest of a large list.

  • Dynamic programming basics

    Save answers to smaller versions of the same problem when a fresh recursion would repeat them.

  • Greedy choices

    Take the local choice that you can prove does not block a better global answer.

  • String problems

    Most string tasks are arrays of characters plus a decision about order and contiguity.

Beyond the coding pad

Questions about a page go to hello@piyushchhabra.com or the contact page. The about page explains what this site will not publish.