- AWS – SQS: Queues, Visibility Timeout and DLQs
A queue is the simplest way to stop a slow dependency from becoming a 500. Standard versus FIFO, long polling and the empty receives it saves you paying for, and visibility timeout — the setting that quietly processes your message twice when it is shorter than your handler. Dead-letter queues and the redrive policy, idempotency as a requirement rather than a nicety, and Lambda event source mapping with batching.
- LeetCode 211 – Design Add and Search Words Data Structure
Implement Trie with one wildcard added, and that wildcard is the whole problem. A trie search is a walk down one path; a dot turns it into a search over all of them, so the lookup stops being a loop and the complexity stops being linear.
- LeetCode 210 – Course Schedule II
Problem 207 asked whether an ordering exists; this wants the ordering, which Kahn's algorithm already had and threw away. The list IS the count. Plus why the DFS version comes out backwards, and the heap that gives the lexicographically smallest order.
- LeetCode 208 – Implement Trie (Prefix Tree)
A build-the-structure question where the interview is really two things: why a trie beats a hash set for prefix queries, and the one boolean separating a word from a prefix. Every operation is independent of how many words are stored.
- LeetCode 207 – Course Schedule
Cycle detection in a directed graph wearing a scheduling problem's clothes. Kahn's algorithm never looks for the cycle — it notices what is left over. And the DFS version needs THREE node states, because already-finished and currently-above-me are different facts.