Prep for the exam you're actually taking
Imagine studying for an SAT by grinding calculus problems. You'd be working hard in completely the wrong direction. Every company's interview has a distinct style — Amazon tests leadership principles alongside DSA, Google goes deep on algorithmic analysis, Stripe cares about API design and correctness. Knowing who asks what lets you allocate your limited prep time with precision.
🎯 The meta-strategy: The patterns below are durable signals — each company's style and recurring question shapes. Specific questions rotate quickly, but style stays stable across years. Drill the pattern, not the trophy question.
The interview funnel — three rounds, increasing seniority
| Level | DSA | LLD | HLD |
|---|---|---|---|
| SDE-1 / New grad | 90% of prep | Light (one OOP design) | None |
| SDE-2 | 50% — harder (medium-hard) | Full round required | Entry round |
| SDE-3 / Staff | Still screens (stay warm) | Deep round | Dominates — trade-offs and ownership |
Every loop runs the same funnel:
- DSA round — clear it with the patterns and the Blind 75.
- LLD round (SDE-2+) — OOP/SOLID, patterns, and the classics (LRU, vending machine, tic-tac-toe).
- HLD round (SDE-2/3) — the approach plus case studies (URL shortener, feed, and friends).
Specific questions rotate and leak quickly go stale; patterns don't. What follows is the durable signal — each company's style and the recurring question shapes reported through 2025–2026 — mapped to the pages that train them. Drill the pattern, not the trophy question.
Company-specific complexity expectations
| Company | DSA depth | Key focus areas |
|---|---|---|
| Amazon | Medium | LP alignment, graphs, heaps, DP |
| Medium-Hard, proof required | Algorithmic analysis, graph algorithms, DP patterns | |
| Meta | Medium (speed matters) | Arrays/strings, graphs, intervals |
| Microsoft | Balanced | Fundamentals: linked lists, trees, strings, DP |
| Nvidia | Hard (systems focus) | Concurrency, bit manipulation, C++ low-latency |
| Bloomberg/HFT | Hard (speed + correctness) | Bit tricks, math, low-latency concurrency |
| Startups | Medium (pragmatic) | Can you ship — breadth over exotic algorithms |
The canonical DSA patterns by company
The same code template showing how a company-favorite problem looks in Python, Java, and C++:
# Amazon favorite: BFS on a graph/grid (classic medium)
from collections import deque
def num_islands(grid):
if not grid: return 0
rows, cols = len(grid), len(grid[0])
count = 0
for r in range(rows):
for c in range(cols):
if grid[r][c] == '1':
count += 1
queue = deque([(r, c)])
grid[r][c] = '0'
while queue:
row, col = queue.popleft()
for dr, dc in [(0,1),(1,0),(0,-1),(-1,0)]:
nr, nc = row + dr, col + dc
if 0 <= nr < rows and 0 <= nc < cols and grid[nr][nc] == '1':
grid[nr][nc] = '0'
queue.append((nr, nc))
return count
# Google favorite: DP with optimization (LIS — O(n log n) patience sort)
import bisect
def length_of_lis(nums):
tails = []
for n in nums:
pos = bisect.bisect_left(tails, n)
if pos == len(tails):
tails.append(n)
else:
tails[pos] = n
return len(tails)
// Meta favorite: interval merge (speed-focused, must be fast and clean)
import java.util.*;
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> a[0] - b[0]); // sort by start
List<int[]> merged = new ArrayList<>();
for (int[] iv : intervals) {
if (merged.isEmpty() || merged.get(merged.size()-1)[1] < iv[0]) {
merged.add(iv); // no overlap, add as new interval
} else {
merged.get(merged.size()-1)[1] = // extend end
Math.max(merged.get(merged.size()-1)[1], iv[1]);
}
}
return merged.toArray(new int[0][]);
}
// Microsoft favorite: validate BST (fundamentals + bounds trick)
#include <climits>
bool isValidBST(TreeNode* root, long low = LLONG_MIN, long high = LLONG_MAX) {
if (!root) return true;
if (root->val <= low || root->val >= high) return false;
return isValidBST(root->left, low, root->val)
&& isValidBST(root->right, root->val, high);
}
Big Tech
Amazon
- Style: medium DSA + a strong LP/behavioral bar; OOD is common at SDE-2.
- DSA: graphs/BFS-DFS, heaps & intervals, two pointers, DP.
- LLD/HLD: parking lot, LRU; design a URL shortener, a distributed cache.
- Style: algorithmic depth + clean analysis; expect "now optimize / now prove it."
- DSA: graphs, DP patterns, backtracking, tries, math.
- HLD: typeahead, web crawler, YouTube. Sometimes a concurrency round.
Meta
- Style: fast medium DSA (speed matters), product-flavored HLD, "ownership" behavioral.
- DSA: arrays/strings, graphs, intervals, binary search.
- HLD: news feed / Twitter, Instagram, ad click aggregation.
Microsoft
- Style: balanced, fundamentals-first; OOD and some bit work.
- DSA: linked lists, trees, strings, DP.
- LLD/HLD: tic-tac-toe, file system; distributed ID.
Apple / Netflix
- Apple: fundamentals + domain depth; LLD and memory-aware code.
- Netflix: senior bar — HLD at scale, streaming/CDN, strong system ownership over puzzle DSA.
Product / scale-ups
Uber
- Real-time + geo + maps. Design Uber, advanced graphs (routing), message queue.
Stripe
- Correctness + API design + practical coding (often realistic, less trick-puzzle). API design, idempotency/payments, REST/GraphQL.
Airbnb / LinkedIn
Atlassian
- Values-based behavioral + practical LLD and balanced HLD.
Data / infra / AI
Databricks / Snowflake
- Distributed-systems and data depth. Databases at scale, OLAP vs OLTP, message queue, consistency.
Nvidia
- Systems + parallelism + concurrency; C++ and memory matter.
OpenAI / AI labs
- Strong general SWE + AI/ML depth; pragmatic coding and LLM systems. Research-eng roles add ML breadth.
Bloomberg / HFT
- Bit tricks, math, low-latency concurrency, and tight C++.
Startups & mid-size product companies
Fewer rounds, more "can you ship": one practical DSA screen, often a take-home or a realistic LLD, and a pragmatic HLD about their product. Breadth (backend, databases, caching) beats exotic algorithms.
Think it through
PROBLEMYou have 4 weeks before interviews at: Amazon (SDE-2) and Google (SDE-2). You can spend about 3 hours per day. How do you allocate your prep time across DSA, LLD, and HLD? And for DSA, which topics should you prioritize for each company specifically?
- 1
Match level to rounds
“SDE-2 at both companies means which rounds will you face?”
- 2
DSA priorities by company
“Amazon vs Google — what's different about their DSA style?”
unlocks after the stage above - 3
LLD priorities
“Both companies have LLD rounds. What to focus on?”
unlocks after the stage above - 4
Week-by-week plan
“Lay out 4 weeks concretely.”
unlocks after the stage above
Practice — climb the ladder
Climb in order — every rung assumes the one above it. Solve on LeetCode, then tick it here; progress is saved on this device.
Amazon style — medium BFS/DP
medium problems at production-reasonable speed- Number of IslandsMedium
BFS flood fill — classic Amazon medium.
- Merge IntervalsMedium
Sort + sweep — interval family.
- Coin ChangeMedium
Bottom-up DP — the DP flagship.
Google style — analysis + depth
medium-hard with expected proof of optimalityO(n²) DP → O(n log n) patience sort. Google expects both.
- Course Schedule IIMedium
Topological sort order — Kahn's BFS.
- Word Search IIHard
Trie pruning + DFS backtracking — Google loves tries.
Meta style — speed on mediums
medium problems, must be clean and fast- 3SumMedium
Sort + two-pointer — deduplication is the trap.
- Binary SearchEasy
Get the template flawless — Meta expects these fast.
Sliding window with need/have counts.
Check yourself — company prep strategy
1. You're SDE-1 at a FAANG. Where should 90% of your prep time go?
2. Google expects 'now optimize it' after you code a solution. What should you always be prepared to do?
3. Leaked 'recently asked' question lists — how should you use them?