Airbnb
Practical, not LeetCode: frontend screens are build-this-widget or implement-this-class prompts in a live editor, and the interviewer keeps adding requirements until time runs out. Clarifying questions, a stated plan, and self-tested code are scored explicitly, alongside a pairing-style onsite and dedicated core-values interviews.
Typical loop
- 1Recruiter screen
- 2Technical screen: 45 min on Zoom + CodeSignal with a Web Engineering interviewer — React or vanilla JS, one prompt with incremental feature adds
- 3Sometimes a second technical screen, DSA-flavored
- 4Onsite: pairing-style coding round in the same grow-the-prompt style
- 5Architecture round (frontend system design — a chat app, a typeahead widget)
- 6Two core-values interviews
Questions
Callback's practice questions and the LeetCode questions Airbnb has been asking, filtered together.
Practice questions
Frontend · List state done right: keys, controlled input, and deletes.
StoreData with Change Listeners
Frontend · A Backbone.Model-style store: two Maps, one event-key normalizer, listeners that can't break each other.
Frontend · A one-way state machine, a handler queue, and every callback in a microtask.
Debounce with Cancel and Flush
Frontend · A trailing-edge debounce whose wrapper can also drop the pending call or run it now.
Frontend · Declarative rule factories and one message per field — the first failing rule's.
Algorithms & Data Structures · A tree of nodes keyed by path segment — the OOD-style prompt where the implementation is the test.
Algorithms & Data Structures · Simulate one unit at a time — left, then right, else stay — and land only on strictly lower ground.
Frontend · A tab UI packaged as an initializer — two independent instances from one function.
Frontend · Real radio inputs behind the stars: the form submits itself, the keyboard works, N instances are N names.
Frontend · Fisher–Yates, a splice, and fresh nodes per deal — the reveal animation comes free.
Typeahead with Keyboard Navigation
Frontend · Debounce the query, abort the stale request, cache by query, wrap the arrow keys, wire the combobox.
Carousel with a Per-Slide Countdown
Frontend · One interval per slide, one batched update per advance — and the double-advance trap.
Frontend · Immutable board updates, gravity in dropPiece, and a win check that only looks through the last move.
Algorithms & Data Structures · Greedy word wrap inside ASCII borders — never split a word, never start a line with punctuation.
Algorithms & Data Structures · Split first, decode second — the ordering that makes the encoded-ampersand case work.
Algorithms & Data Structures · Case-insensitive, longest match wins, original text preserved — a trie walk from every offset.
Algorithms & Data Structures · Pluggable backoff, a retryable filter, hooks, and an abort signal around one loop.
Algorithms & Data Structures · Consume the oldest stock first and say which lots an order drew from — an implementation prompt with tie-break rules.
Frontend · Two arrays and one Set of checked ids — get a working version fast, then polish.
Algorithms & Data Structures · Levels from the top down, one character per column — ground, water, or air.
Frontend · Promises can't be cancelled, so cancel the work — and reject once, with an AbortError, only while pending.
Frontend · A leading call, then at most one call per window — with a trailing call that carries the latest arguments.
Algorithms & Data Structures · Each sentence wraps at its own width; one box pads every line to the widest.
Algorithms & Data Structures · A rank histogram and two booleans name every category — the ace is the only edge case.
Asked on LeetCode
63 questions · all time
- Text JustificationhardArrayStringSimulationfrequency 100.0
- Maximum Profit in Job SchedulinghardArrayBinary SearchDynamic ProgrammingSortingfrequency 93.0
- Flatten 2D VectormediumArrayTwo PointersDesignIteratorfrequency 85.6
- Maximum Candies You Can Get from BoxeshardArrayBreadth-First SearchGraph Theoryfrequency 82.4
- Smallest Common RegionmediumArrayHash TableStringTree+4frequency 82.4
- Design Excel Sum FormulahardArrayHash TableStringGraph Theory+3frequency 78.6
- Palindrome PairshardArrayHash TableStringTrie+1frequency 78.6
- Pour WatermediumArraySimulationfrequency 77.1
- Sliding PuzzlehardArrayDynamic ProgrammingBacktrackingBreadth-First Search+5frequency 75.6
- Intersection of Two Linked ListseasyHash TableLinked ListTwo Pointersfrequency 73.9
- Alien DictionaryhardArrayStringDepth-First SearchBreadth-First Search+3frequency 72.1
- Simple Bank SystemmediumArrayHash TableDesignSimulationfrequency 72.1
- Contains Duplicate IIeasyArrayHash TableSliding Windowfrequency 70.1
- Trapping Rain WaterhardArrayTwo PointersDynamic ProgrammingStack+1frequency 70.1
- Add Two NumbersmediumLinked ListMathRecursionfrequency 67.9
- Employee Free TimehardArraySweep LineSortingHeap (Priority Queue)frequency 67.9
- IP to CIDRmediumStringBit Manipulationfrequency 67.9
- Shortest Uncommon Substring in an ArraymediumArrayHash TableStringTriefrequency 67.9
- Word Search IIhardArrayStringBacktrackingTrie+1frequency 67.9
- Add StringseasyMathStringSimulationfrequency 65.5
- Basic Calculator IImediumMathStringStackfrequency 65.5
- Cheapest Flights Within K StopsmediumDynamic ProgrammingDepth-First SearchBreadth-First SearchGraph Theory+2frequency 65.5
- Contains DuplicateeasyArrayHash TableSortingfrequency 65.5
- Contains Duplicate IIIhardArraySliding WindowSortingBucket Sort+1frequency 65.5
- Convert Sorted Array to Binary Search TreeeasyArrayDivide and ConquerTreeBinary Search Tree+1frequency 65.5
- Convert to Base -2mediumMathfrequency 65.5
- Design File SystemmediumHash TableStringDesignTriefrequency 65.5
- Happy NumbereasyHash TableMathTwo PointersFloyd's Cycle Finding Algorithmfrequency 65.5
- House RobbermediumArrayDynamic Programmingfrequency 65.5
- Maximal SquaremediumArrayDynamic ProgrammingMatrixfrequency 65.5
- Merge k Sorted ListshardLinked ListDivide and ConquerHeap (Priority Queue)Merge Sort+1frequency 65.5
- Mini ParsermediumStringStackDepth-First Searchfrequency 65.5
- Minimize Rounding Error to Meet TargetmediumArrayMathStringGreedy+1frequency 65.5
- Minimum Number of Flips to Convert Binary Matrix to Zero MatrixhardArrayHash TableBit ManipulationBreadth-First Search+1frequency 65.5
- Minimum Number of Vertices to Reach All NodesmediumGraph TheoryDirected Acyclic Graphfrequency 65.5
- Number of Ways to Build House of CardsmediumMathDynamic Programmingfrequency 65.5
- Pyramid Transition MatrixmediumHash TableStringBacktrackingBit Manipulationfrequency 65.5
- Regular Expression MatchinghardStringDynamic ProgrammingRecursionfrequency 65.5
- Reverse BitseasyDivide and ConquerBit Manipulationfrequency 65.5
- Robot Bounded In CirclemediumMathStringSimulationfrequency 65.5
- Shopping OffersmediumArrayDynamic ProgrammingBacktrackingBit Manipulation+4frequency 65.5
- Single NumbereasyArrayBit Manipulationfrequency 65.5
- Strings Differ by One CharactermediumHash TableStringRolling HashHash Functionfrequency 65.5
- Two SumeasyArrayHash Tablefrequency 65.5
- Valid ParentheseseasyStringStackBracket Sequencesfrequency 65.5
- Minimum Window SubstringhardHash TableStringSliding Windowfrequency 62.7
- Combination SummediumArrayBacktrackingfrequency 59.5
- Accounts MergemediumArrayHash TableStringDepth-First Search+3frequency 55.7
- Subarray Product Less Than KmediumArrayBinary SearchSliding WindowPrefix Sumfrequency 55.7
- Design Tic-Tac-ToemediumArrayHash TableDesignMatrix+1frequency 45.2