Skip to main content
Courses
Interview Courses
Product Management
Ace product interviews from strategy cases to technical skills.
Engineering Management
Review key leadership and people management skills.
Software Engineering
Learn essential strategies for coding problems and more.
System Design
Define architectures, interfaces, and databases in a time crunch.
Data Science
Execute statistical techniques and experimentation effectively.
Machine Learning
Review building, evaluating, and deploying AI/ML models.
Data Engineering
Design complex data models and ETL pipelines.
Data Analytics
New
Translate data into actionable insights and business decisions.
More Courses
Generative AI
New
Security Engineer
New
Eng Behavioral
TPM
Solutions Architect
UX / Product Design
BizOps & Strategy
SQL Interviews
View all courses
Questions
Top Questions
Product Management
Behavioral Questions
Coding Questions
System Design
SQL Questions
Machine Learning
Data Analytics
Data Engineering
Browse all questions
Practice
Coaching
Mock Interviews & Coaching
Practice with our team of senior tech coaches.
Resume Review
Get your resume reviewed by a senior tech recruiter.
Salary Negotiation
Increase your offer with our expert negotiators.
Partners
For universities
Give your students tech interview prep.
For businesses
Improve your placement rates, outcomes, and more.
For recruiters
Post a job on Exponent's exclusive job board.
Affiliate program
Recommend us to others and earn commission.
Work with us
Help us grow the Exponent community.
Pricing
Job Referrals
Get job referrals to top tech companies.
Company Guides
Get an inside look at top companies’ interview processes.
Interview Experiences
View real interview experiences at the hottest companies.
Blog
Check out our blog on tech interviewing tips, strategies, and more.
Resources
Members-only articles, videos, and interviews.
Work with us
Help us grow the Exponent community.
Perks
Access exclusive member benefits.
Log in
Sign up
Sign up
Courses
Product Management
Ace product interviews from strategy cases to technical skills.
Engineering Management
Review key leadership and people management skills.
Software Engineering
Learn essential strategies for coding problems and more.
System Design
Define architectures, interfaces, and databases in a time crunch.
Data Science
Execute statistical techniques and experimentation effectively.
Machine Learning
Review building, evaluating, and deploying AI/ML models.
Data Engineering
Design complex data models and ETL pipelines.
Data Analytics
New
Translate data into actionable insights and business decisions.
View all courses
Questions
Product Management
Behavioral Questions
Coding Questions
System Design
SQL Questions
Machine Learning
Data Analytics
Data Engineering
Browse all questions
Practice
Coaching
Mock Interviews & Coaching
Practice with our team of senior tech coaches.
Resume Review
Get your resume reviewed by a senior tech recruiter.
Salary Negotiation
Increase your offer with our expert negotiators.
Partners
For universities
Give your students tech interview prep.
For businesses
Improve your placement rates, outcomes, and more.
For recruiters
Post a job on Exponent's exclusive job board.
Affiliate program
Recommend us to others and earn commission.
Work with us
Help us grow the Exponent community.
Pricing
More
Job Referrals
Get job referrals to top tech companies.
Company Guides
Get an inside look at top companies’ interview processes.
Interview Experiences
View real interview experiences at the hottest companies.
Blog
Check out our blog on tech interviewing tips, strategies, and more.
Resources
Members-only articles, videos, and interviews.
Work with us
Help us grow the Exponent community.
Perks
Access exclusive member benefits.
Sign up
Log in
Software Engineering Interview Prep
Software Engineering Introduction
Welcome to Exponent's Software Engineering Interview Prep Course!
The Software Engineering Interview Loop
Coding Interviews at AI Companies
Bonus: Google's SWE Interview Loop
Software Engineering Levels
Software Engineering Coding Questions
Overview
Tips for Acing Technical Coding Interviews
Choosing the Right Language for Your Technical Interview
Practice: Move Zeros to End of Array
Practice: Remove Duplicates in String
Practice: Contiguous Subarray Sum
Fast Track
How to Prep for a Coding Interview Fast
Arrays, Two Pointers, Stacks, and Sliding Window
Binary Search, Heaps, and Intervals
Linked Lists, Trees, and Tries
Backtracking, Graphs, and DP
How to Answer Any Coding Interview Question
Time & Space Complexity
Understanding Big O Notation
Analyzing Time Complexity
Analyzing Space Complexity
Optimizing Your Algorithms
Coding Patterns
Introduction to Coding Patterns
Two Pointer
Prefix Sum
Tortoise & Hare
Sliding Window
Two Pass
Bit Manipulation
Cyclic Sort
Arrays
Arrays
Move Zeros to End of Array
Three Sum
Merge Intervals
Group Anagrams
Product of Array Except Self
Copy a Spiral Matrix
Maximum Subarray Sum
Container with Most Water
Task Scheduler
Trap Rain Water
Contiguous Subarray Sum
Hash Tables
Hash Tables
Maximum Profit
Difference of Arrays
Smallest Missing Integer
Two Sum
Boggle Board
Searching & Sorting
Sorting Algorithms
Binary Search
Number Finder
Find the Duplicates
K-Messed Array Sort
Rotations in Circularly Sorted Array
Koko Eating Bananas
Find the Peak Element
String Manipulation
Most Common Words
Valid Palindrome
Validate IP Address
Decrypt Message
Minimum Window Substring
Serialize and Deserialize Strings
Longest Substring Without Repeat
Remove Duplicates in String
Longest Palindromic Substring
Graphs
Graphs
Graph Search
Degrees of Friendship
Sentence Similarity
Number of Islands
Rotting Oranges
Course Schedule
Edit Distance
Redundant Connection
Trees
Trees
Balanced Tree
Diameter of a Tree
Validate Binary Search Tree
Construct Binary Tree
Implement Trie
Lowest Common Ancestor of a Binary Tree
Find Largest Smaller BST Key
BST Successor Search
Stacks & Queues
Stacks
Queues
Min Stack
Reverse a Sentence
Valid Parentheses
Daily Temperatures
Shortest Cell Path
Conversion Ratios
Linked Lists
Linked Lists
Reverse Linked List
Linked List Cycle
Merge Sort Doubly Linked List
Merge Linked Lists
LRU Cache
Heaps
Heaps
Find Largest Numbers
Buy and Sell Stock
Find Median from Data Stream
Recursion & Backtracking
Recursion
Fibonacci Numbers
Generate Parentheses
Subsets
Sales Path
Flatten a Dictionary
Build a Calculator
Permutations
Combination Sum
Implement Promise.all()
Sudoku Solver
Build a Basic Regex Parser
Dynamic Programming
Dynamic Programming
Climbing Stairs
Prime Numbers
Knapsack Problem
List the Difference Between Two Strings
Target Sum
Coin Change
Partition Equal Subset Sum
DNA Sequence
Unique Paths
System Design Interviews
Overview
Introduction to the System Design Interview
How to Answer System Design Interview Questions
System Design Principles
Rubric for System Design Interviews
System Design Glossary
Top Engineering Blogs
Networking & API Design
Web Protocol Questions
APIs
Scalable Systems
Reliability
Availability
Load Balancing
Databases
SQL vs. NoSQL
Database Sharding
Replication
Distributed Systems
Consistent Hashing
CAP Theorem
Asynchronous Processing
Caching
Encryption
Authentication and Authorization
Cloud Architecture
CDNs
Real-time & Events: Mock Interviews
Design Facebook Messenger
Design Google Docs
Design Uber Eats
Design WhatsApp
Design Tinder
Design ChatGPT
Design Weather App
Media & Content Delivery: Mock Interviews
Design YouTube
Design TikTok
Design Instagram
Design Netflix
Design Twitter
Async & Data Processing: Mock Interviews
Design a Web Crawler
Design a Metrics and Logging Service
Design Dropbox
Design App that Downloads User Data
Design an Application Performance Monitoring System
Payments & Marketplaces: Mock Interviews
Design a Parking Garage
Design the Payment System for the Amazon Kindle
Design a Hotel Booking Service
Design Zillow
Design a Vending Machine
Design Ticketmaster
Distributed Infrastructure: Mock Interviews
Design a Key Value Store
Design a Rate Limiter
Design a Distributed Message Queue
Design a URL Shortener
Design Typeahead for Search Box
Design a Distributed LRU Cache
Behavioral Interviews: A Practical Guide for Engineers
Fast Track (Start Here)
Welcome to Behavioral Interviewing for Engineers
Introduction to Engineering Behavioral Interviews
Avoiding Downleveling
Approaching the 3 Question Types
Elevating Your Past Projects
Habits of High-Performing Candidates
Be Seen as a Senior Engineer (Part 1: Mock Interview)
Be Seen as a Senior Engineer (Part 2: Analysis)
Theory
Why Engineers Fail Interviews
The Question Beneath the Question
Measuring Culture Fit
Demonstrating Impact
Introducing Yourself: Do's and Don'ts
"Why Our Company?"
Prevent Instant Rejection
Tactics
Know the Rules So You Can Break Them
Types of Interviewers
Sharing the Optimal Level of Detail
Stop Sounding Like a Robot
Reversing a Downlevel Offer
Mock Interviews & Analyses
Be Seen as a Staff+ Engineer (Part 1)
Be Seen as a Staff+ Engineer (Part 2: Analysis)
Demonstrating Ownership (Part 1)
Demonstrating Ownership (Part 2: Analysis)
Do You Meet the Senior+ Bar? (Part 1)
Do You Meet the Senior+ Bar? (Part 2: Analysis)
Practice
Practice Behavioral Interviews
Unlock full course
Software Engineering Interview Prep
Software Engineering Introduction
Welcome to Exponent's Software Engineering Interview Prep Course!
The Software Engineering Interview Loop
Coding Interviews at AI Companies
Bonus: Google's SWE Interview Loop
Software Engineering Levels
Software Engineering Coding Questions
Overview
Tips for Acing Technical Coding Interviews
Choosing the Right Language for Your Technical Interview
Practice: Move Zeros to End of Array
Practice: Remove Duplicates in String
Practice: Contiguous Subarray Sum
Fast Track
How to Prep for a Coding Interview Fast
Arrays, Two Pointers, Stacks, and Sliding Window
Binary Search, Heaps, and Intervals
Linked Lists, Trees, and Tries
Backtracking, Graphs, and DP
How to Answer Any Coding Interview Question
Time & Space Complexity
Understanding Big O Notation
Analyzing Time Complexity
Analyzing Space Complexity
Optimizing Your Algorithms
Coding Patterns
Introduction to Coding Patterns
Two Pointer
Prefix Sum
Tortoise & Hare
Sliding Window
Two Pass
Bit Manipulation
Cyclic Sort
Arrays
Arrays
Move Zeros to End of Array
Three Sum
Merge Intervals
Group Anagrams
Product of Array Except Self
Copy a Spiral Matrix
Maximum Subarray Sum
Container with Most Water
Task Scheduler
Trap Rain Water
Contiguous Subarray Sum
Hash Tables
Hash Tables
Maximum Profit
Difference of Arrays
Smallest Missing Integer
Two Sum
Boggle Board
Searching & Sorting
Sorting Algorithms
Binary Search
Number Finder
Find the Duplicates
K-Messed Array Sort
Rotations in Circularly Sorted Array
Koko Eating Bananas
Find the Peak Element
String Manipulation
Most Common Words
Valid Palindrome
Validate IP Address
Decrypt Message
Minimum Window Substring
Serialize and Deserialize Strings
Longest Substring Without Repeat
Remove Duplicates in String
Longest Palindromic Substring
Graphs
Graphs
Graph Search
Degrees of Friendship
Sentence Similarity
Number of Islands
Rotting Oranges
Course Schedule
Edit Distance
Redundant Connection
Trees
Trees
Balanced Tree
Diameter of a Tree
Validate Binary Search Tree
Construct Binary Tree
Implement Trie
Lowest Common Ancestor of a Binary Tree
Find Largest Smaller BST Key
BST Successor Search
Stacks & Queues
Stacks
Queues
Min Stack
Reverse a Sentence
Valid Parentheses
Daily Temperatures
Shortest Cell Path
Conversion Ratios
Linked Lists
Linked Lists
Reverse Linked List
Linked List Cycle
Merge Sort Doubly Linked List
Merge Linked Lists
LRU Cache
Heaps
Heaps
Find Largest Numbers
Buy and Sell Stock
Find Median from Data Stream
Recursion & Backtracking
Recursion
Fibonacci Numbers
Generate Parentheses
Subsets
Sales Path
Flatten a Dictionary
Build a Calculator
Permutations
Combination Sum
Implement Promise.all()
Sudoku Solver
Build a Basic Regex Parser
Dynamic Programming
Dynamic Programming
Climbing Stairs
Prime Numbers
Knapsack Problem
List the Difference Between Two Strings
Target Sum
Coin Change
Partition Equal Subset Sum
DNA Sequence
Unique Paths
System Design Interviews
Overview
Introduction to the System Design Interview
How to Answer System Design Interview Questions
System Design Principles
Rubric for System Design Interviews
System Design Glossary
Top Engineering Blogs
Networking & API Design
Web Protocol Questions
APIs
Scalable Systems
Reliability
Availability
Load Balancing
Databases
SQL vs. NoSQL
Database Sharding
Replication
Distributed Systems
Consistent Hashing
CAP Theorem
Asynchronous Processing
Caching
Encryption
Authentication and Authorization
Cloud Architecture
CDNs
Real-time & Events: Mock Interviews
Design Facebook Messenger
Design Google Docs
Design Uber Eats
Design WhatsApp
Design Tinder
Design ChatGPT
Design Weather App
Media & Content Delivery: Mock Interviews
Design YouTube
Design TikTok
Design Instagram
Design Netflix
Design Twitter
Async & Data Processing: Mock Interviews
Design a Web Crawler
Design a Metrics and Logging Service
Design Dropbox
Design App that Downloads User Data
Design an Application Performance Monitoring System
Payments & Marketplaces: Mock Interviews
Design a Parking Garage
Design the Payment System for the Amazon Kindle
Design a Hotel Booking Service
Design Zillow
Design a Vending Machine
Design Ticketmaster
Distributed Infrastructure: Mock Interviews
Design a Key Value Store
Design a Rate Limiter
Design a Distributed Message Queue
Design a URL Shortener
Design Typeahead for Search Box
Design a Distributed LRU Cache
Behavioral Interviews: A Practical Guide for Engineers
Fast Track (Start Here)
Welcome to Behavioral Interviewing for Engineers
Introduction to Engineering Behavioral Interviews
Avoiding Downleveling
Approaching the 3 Question Types
Elevating Your Past Projects
Habits of High-Performing Candidates
Be Seen as a Senior Engineer (Part 1: Mock Interview)
Be Seen as a Senior Engineer (Part 2: Analysis)
Theory
Why Engineers Fail Interviews
The Question Beneath the Question
Measuring Culture Fit
Demonstrating Impact
Introducing Yourself: Do's and Don'ts
"Why Our Company?"
Prevent Instant Rejection
Tactics
Know the Rules So You Can Break Them
Types of Interviewers
Sharing the Optimal Level of Detail
Stop Sounding Like a Robot
Reversing a Downlevel Offer
Mock Interviews & Analyses
Be Seen as a Staff+ Engineer (Part 1)
Be Seen as a Staff+ Engineer (Part 2: Analysis)
Demonstrating Ownership (Part 1)
Demonstrating Ownership (Part 2: Analysis)
Do You Meet the Senior+ Bar? (Part 1)
Do You Meet the Senior+ Bar? (Part 2: Analysis)
Practice
Practice Behavioral Interviews
Unlock full course
Courses
Software Engineering Interview Prep
Behavioral Interviews: A Practical Guide for Engineers
Mock Interviews & Analyses
Do You Meet the Senior+ Bar? (Part 1)
Premium
Watch Michelle Brenner (Netflix Senior Engineer) grill Kashish Singhal (Meta Senior Engineer) to see if he can pass a behavioral round Netflix-style.
Next Lesson