Data Structures
Ways of organizing data so the operations you need are fast.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
Core: start here
- Hash TableKey-value storage with average O(1) lookup via a hash function.
8 more junior concepts
- Binary TreeA tree where each node has at most two children.
- Data StructureA way of organizing data so certain operations are efficient.
- Dynamic ArrayAn array that grows by reallocating, with amortized O(1) appends.
- Hash FunctionA function mapping data of any size to a fixed-size value.
- Linked ListNodes pointing to the next node: fast inserts, slow random access.
- QueueA first-in, first-out collection.
- StackA last-in, first-out collection.
- TreeA hierarchy of nodes with one root and no cycles.
Mid-level
Own a feature end to end without hand-holding.
- Adjacency List vs MatrixTwo ways to store a graph's edges.
- B-TreeA wide, shallow tree optimized for disks; how database indexes work.
- Binary Search TreeA binary tree ordered so each lookup can halve the search.
- DequeA double-ended queue that adds and removes at both ends.
- Directed Acyclic Graph (DAG)A graph with directed edges and no cycles, as in build systems and pipelines.
- Doubly Linked ListA linked list with pointers in both directions.
- GraphNodes connected by edges; models networks, dependencies and maps.
- Hash CollisionTwo keys hashing to the same slot, and how tables handle it.
- HeapA tree that keeps the min or max at the root; backs priority queues.
- LRU CacheA cache evicting the least recently used item, built from a hash map and a linked list.
- Priority QueueA queue that always returns the highest-priority item first.
- Tree TraversalVisiting tree nodes in pre-order, in-order, post-order or level order.
- TrieA tree of characters for fast prefix lookups.
Senior
Own a system, its failure modes, and its trade-offs.
- Balanced TreeTrees like AVL or red-black that stay shallow for guaranteed O(log n).
- Bloom FilterA compact structure answering "definitely not" or "probably yes" for set membership.
- HyperLogLogEstimating the number of distinct items with tiny memory.
- K-D TreeA tree for searching points in multi-dimensional space.
- Merkle TreeA tree of hashes that verifies large data efficiently.
- Persistent Data StructureAn immutable structure that shares unchanged parts between versions.
- Ring BufferA fixed-size buffer that wraps around.
- Segment TreeA tree for fast range queries over arrays.
- Skip ListA layered linked list with O(log n) search.
- Union-FindTracking which elements belong to the same group.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
- Suffix ArrayA sorted array of a string's suffixes for fast substring search.
Data Engineer track
Junior
Build and fix pipelines from clear specs; write correct SQL.
- Binary TreeA tree where each node has at most two children.
- Data StructureA way of organizing data so certain operations are efficient.
- Dynamic ArrayAn array that grows by reallocating, with amortized O(1) appends.
- Hash FunctionA function mapping data of any size to a fixed-size value.
- Hash TableKey-value storage with average O(1) lookup via a hash function.
- Linked ListNodes pointing to the next node: fast inserts, slow random access.
- QueueA first-in, first-out collection.
- StackA last-in, first-out collection.
- TreeA hierarchy of nodes with one root and no cycles.
Mid-level
Own pipelines and models end to end, including their quality.
- Adjacency List vs MatrixTwo ways to store a graph's edges.
- B-TreeA wide, shallow tree optimized for disks; how database indexes work.
- Binary Search TreeA binary tree ordered so each lookup can halve the search.
- DequeA double-ended queue that adds and removes at both ends.
- Directed Acyclic Graph (DAG)A graph with directed edges and no cycles, as in build systems and pipelines.
- Doubly Linked ListA linked list with pointers in both directions.
- GraphNodes connected by edges; models networks, dependencies and maps.
- Hash CollisionTwo keys hashing to the same slot, and how tables handle it.
- HeapA tree that keeps the min or max at the root; backs priority queues.
- LRU CacheA cache evicting the least recently used item, built from a hash map and a linked list.
- Priority QueueA queue that always returns the highest-priority item first.
- Tree TraversalVisiting tree nodes in pre-order, in-order, post-order or level order.
- TrieA tree of characters for fast prefix lookups.
Senior
Design the platform's storage, processing and modeling choices.
- Balanced TreeTrees like AVL or red-black that stay shallow for guaranteed O(log n).
- Bloom FilterA compact structure answering "definitely not" or "probably yes" for set membership.
- HyperLogLogEstimating the number of distinct items with tiny memory.
- K-D TreeA tree for searching points in multi-dimensional space.
- Merkle TreeA tree of hashes that verifies large data efficiently.
- Persistent Data StructureAn immutable structure that shares unchanged parts between versions.
- Ring BufferA fixed-size buffer that wraps around.
- Segment TreeA tree for fast range queries over arrays.
- Skip ListA layered linked list with O(log n) search.
- Union-FindTracking which elements belong to the same group.
Staff
Shape how the whole organization produces and uses data.
Nothing here yet.
Principal
Set data strategy and architecture across the company.
- Suffix ArrayA sorted array of a string's suffixes for fast substring search.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
- Binary TreeA tree where each node has at most two children.
- Data StructureA way of organizing data so certain operations are efficient.
- Dynamic ArrayAn array that grows by reallocating, with amortized O(1) appends.
- Hash FunctionA function mapping data of any size to a fixed-size value.
- Hash TableKey-value storage with average O(1) lookup via a hash function.
- Linked ListNodes pointing to the next node: fast inserts, slow random access.
- QueueA first-in, first-out collection.
- StackA last-in, first-out collection.
- TreeA hierarchy of nodes with one root and no cycles.
Mid-level
Own a feature end to end without hand-holding.
- Adjacency List vs MatrixTwo ways to store a graph's edges.
- Binary Search TreeA binary tree ordered so each lookup can halve the search.
- DequeA double-ended queue that adds and removes at both ends.
- Directed Acyclic Graph (DAG)A graph with directed edges and no cycles, as in build systems and pipelines.
- Doubly Linked ListA linked list with pointers in both directions.
- GraphNodes connected by edges; models networks, dependencies and maps.
- Hash CollisionTwo keys hashing to the same slot, and how tables handle it.
- HeapA tree that keeps the min or max at the root; backs priority queues.
- LRU CacheA cache evicting the least recently used item, built from a hash map and a linked list.
- Priority QueueA queue that always returns the highest-priority item first.
- Tree TraversalVisiting tree nodes in pre-order, in-order, post-order or level order.
- TrieA tree of characters for fast prefix lookups.
Senior
Own an app's architecture, performance, and failure modes.
- B-TreeA wide, shallow tree optimized for disks; how database indexes work.
- Balanced TreeTrees like AVL or red-black that stay shallow for guaranteed O(log n).
- Bloom FilterA compact structure answering "definitely not" or "probably yes" for set membership.
- Persistent Data StructureAn immutable structure that shares unchanged parts between versions.
- Ring BufferA fixed-size buffer that wraps around.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.