Interview Prep
The focused path for technical interviews — programming, data structures, algorithms, system design, and databases.
Programming Fundamentals
Nail the basics that interviews assume you know.
Understanding how programs store and manage data
How programs make decisions and repeat actions
Organizing code into reusable, composable units
Where variables live and how they're accessed
Ordered collections of data and how to work with them
Key-value data structures for modeling real-world entities
Functions that call themselves to solve problems
Advanced patterns for processing collections efficiently
Working with text: manipulation, searching, and formatting
Data Structures & Algorithms
The core DSA topics that appear in every coding interview.
Array operations, two-pointer techniques, and sliding window patterns
Fast key-value lookups using hash functions
Collections of unique values with fast membership testing
Dynamic data structures built from nodes and pointers
Last-In-First-Out data structure for tracking state
First-In-First-Out data structure for ordered processing
Hierarchical data structures with parent-child relationships
Networks of connected nodes for modeling relationships
Organizing data efficiently with different sorting strategies
Finding elements efficiently with linear and binary search
Exploring graphs level by level to find shortest paths
Exploring graphs deeply before backtracking
How to measure and compare algorithm efficiency using Big O notation
Understanding memory usage of algorithms and data structures
System Design
Architecture questions for senior-level interviews.
The fundamental pattern of modern networked applications
Choosing between a single deployable unit and many small services
Storing computed results to avoid expensive recomputation
Growing your system by adding machines or upgrading existing ones
A single entry point that routes, authenticates, and rate-limits API requests
Understanding system behavior through logs, metrics, and traces
Databases
Storage concepts frequently tested in interviews.
Organizing data into tables with rows and columns
Speeding up queries with B-tree and hash indexes
Ensuring data consistency with atomic operations
Controlling how concurrent transactions see each other's changes
Organizing data to reduce redundancy and improve integrity
Operating Systems
Systems knowledge that separates strong candidates.
Independent programs running on your computer and how the OS manages them
Lightweight units of execution within a process
Understanding the difference between managing and executing multiple tasks
How the OS and runtime allocate, use, and reclaim memory