Company Question Bank — Who Asks What

The interview funnel (DSA → LLD → HLD) mapped to each company's house style and recently-reported question patterns — so you prep for the round you'll actually get, not a generic list.

companyinterview-prepproblem-listroadmap

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

LevelDSALLDHLD
SDE-1 / New grad90% of prepLight (one OOP design)None
SDE-250% — harder (medium-hard)Full round requiredEntry round
SDE-3 / StaffStill screens (stay warm)Deep roundDominates — trade-offs and ownership

Every loop runs the same funnel:

  1. DSA round — clear it with the patterns and the Blind 75.
  2. LLD round (SDE-2+) — OOP/SOLID, patterns, and the classics (LRU, vending machine, tic-tac-toe).
  3. HLD round (SDE-2/3) — the approach plus case studies (URL shortener, feed, and friends).
On 'latest asked questions'

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

CompanyDSA depthKey focus areas
AmazonMediumLP alignment, graphs, heaps, DP
GoogleMedium-Hard, proof requiredAlgorithmic analysis, graph algorithms, DP patterns
MetaMedium (speed matters)Arrays/strings, graphs, intervals
MicrosoftBalancedFundamentals: linked lists, trees, strings, DP
NvidiaHard (systems focus)Concurrency, bit manipulation, C++ low-latency
Bloomberg/HFTHard (speed + correctness)Bit tricks, math, low-latency concurrency
StartupsMedium (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++:

Python
# 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)
Java
// 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][]);
}
C++
// 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

Google

Meta

Microsoft

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

Stripe

Airbnb / LinkedIn

  • Full-stack + product HLD; LinkedIn leans graph/feed (feed, typeahead).

Atlassian

  • Values-based behavioral + practical LLD and balanced HLD.

Data / infra / AI

Databricks / Snowflake

Nvidia

  • Systems + parallelism + concurrency; C++ and memory matter.

OpenAI / AI labs

Bloomberg / HFT

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

Think it through: Company Prioritization Under Time PressureStrategy — apply this 4 weeks before your loop0/4 stages

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. 1

    Match level to rounds

    SDE-2 at both companies means which rounds will you face?

  2. 2

    DSA priorities by company

    Amazon vs Google — what's different about their DSA style?

    unlocks after the stage above
  3. 3

    LLD priorities

    Both companies have LLD rounds. What to focus on?

    unlocks after the stage above
  4. 4

    Week-by-week plan

    Lay out 4 weeks concretely.

    unlocks after the stage above

Practice — climb the ladder

Practice ladder: Company-Style DSA0/9 solved

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
  1. BFS flood fill — classic Amazon medium.

  2. Sort + sweep — interval family.

  3. Bottom-up DP — the DP flagship.

Google style — analysis + depth

medium-hard with expected proof of optimality
  1. O(n²) DP → O(n log n) patience sort. Google expects both.

  2. Topological sort order — Kahn's BFS.

  3. Trie pruning + DFS backtracking — Google loves tries.

Meta style — speed on mediums

medium problems, must be clean and fast
  1. 3SumMedium

    Sort + two-pointer — deduplication is the trap.

  2. Get the template flawless — Meta expects these fast.

  3. Sliding window with need/have counts.

Check yourself — company prep strategy

Check yourself0/3 answered

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?

Visualize the interview funnel by level

Unknown visualizer: interview-funnel