👋 Hi, I'm Michael! I put together this interview guide with questions and resources I encountered over the course of 50+ technical interviews at companies anywhere from startups to FAANG to hedge funds.
It's not meant to be an exhaustive list, but it's a great place to start if you're studying for interviews! :)
📢 Big shoutout to everyone who contributed questions & resources!! 📢
🙏 Want to add questions/resources? Make a PR! 🙏
Applying to SWE jobs or internships?
Autofill all your applications in a single click.
Not quite ready to jump into problem solving? Check out this list of crash course/review content to brush up on concepts before working on the problems
Resource | Notes |
---|---|
Crash Course on Data Structures | Great crash course for everything DS – good refresher |
10 Most Important Concepts for Coding Interviews | Quick overview of important concepts, helpful to identify what to focus on |
Linked List Review | Self explanatory |
BFS and DFS Review | Self explanatory |
Binary Search Review | Self explanatory |
Stacks and Queues Review | Self explanatory |
Trees Review | Self explanatory |
Heaps Review | Self explanatory |
Hash Table Review | Self explanatory |
Recursion Review | Self explanatory |
Here's the list you've been looking for! I've categorized the questions by their overarching category/concept, with notes on tips and what company asked me (or one of the contributors) the question.
Important Note: The companies that asked these questions are self-reported from repo contributors and per my memory. Companies are constantly changing their interview bank, so don't read too much into it!
💡 Note: I encountered these questions multiple times over the course of my interviews. Make sure you know these well since many future problems will build off of your knowledge of these concepts! Feel free to start with these questions or come back at the end to test your knowledge :)
Question | Difficulty | Company/Notes |
---|---|---|
Valid Parentheses | 🟩 | Meta, Microsoft |
Two Sum | 🟩 | More than 5 companies |
Longest Common Prefix | 🟩 | Amazon, Google |
Merge Sorted Array | 🟩 | Meta, Microsoft |
Best Time to Buy & Sell Stock | 🟩 | Citadel, Amazon |
Number of Islands | 🟨 | Palantir, Bloomberg |
Spiral Matrix | 🟨 | Citadel, Palantir |
Validate Binary Search Tree | 🟨 | Twitter, Airbnb |
Coin Change | 🟨 | Meta, Google |
Question | Difficulty | Company/Notes |
---|---|---|
Search Insert Position | 🟩 | |
Binary Search | 🟩 | Wasn't asked directly, but definitely important to know |
Remove Duplicates from Sorted Array | 🟩 | Amazon, Microsoft |
Find First and Last Position of Element in Sorted Array | 🟨 | Meta, Yelp |
Longest Substring Without Repeating Characters | 🟨 | Coding challenge problem |
Search in Rotated Sorted Array | 🟨 | Meta, Google |
Container with Most Water | 🟨 | Startup |
Valid Sudoku | 🟨 | Tesla, Microsoft |
Top K Frequent Elements | 🟨 | Palantir |
Merge K Sorted Lists | 🟥 | Meta |
Question | Difficulty | Company/Notes |
---|---|---|
Reverse String | 🟩 | |
Valid Parentheses | 🟩 | Classic question |
Length of Last Word | 🟩 | Good problem to get comfortable with string operators/edge cases |
Valid Anagram | 🟩 | Startup |
Unique Email Addresses | 🟩 | Coding challenge problem |
Isomorphic Strings | 🟩 | Tesla |
Decode String | 🟨 | Netflix |
String Compression | 🟨 | Amazon |
Longest Substring Without Repeating Characters | 🟨 | Meta |
Question | Difficulty | Company/Notes |
---|---|---|
Reverse Linked List | 🟩 | Citadel, Meta |
Palindrome Linked List | 🟩 | Duolingo |
Linked List Cycle | 🟩 | Startup |
Remove Nth Node From End of List | 🟨 | Meta |
Swap Nodes in Pairs | 🟨 | Uber |
Add Two Numbers | 🟨 | Slack, Meta |
Copy Linked List with Random Pointer | 🟨 | Citadel (Final round), Startup (Phone screen) |
Odd-Even Linked List | 🟨 | Meta |
Question | Difficulty | Company/Notes |
---|---|---|
Diameter of Binary Tree | 🟩 | Bloomberg |
Balanced Binary Tree | 🟩 | Zoom |
Symmetric Tree | 🟩 | Asana |
Path Sum | 🟩 | Meta |
Binary Tree Level Order Traversal | 🟨 | Twitch |
Delete Node in a BST | 🟨 | Amazon |
Validate Binary Search Tree | 🟨 | Microsoft |
Max Area of Island | 🟨 | Palantir (Final round) |
Binary Tree Right Side View | 🟨 | Meta (Final round) |
Serialize and Deserialize Binary Tree | 🟥 | Meta (Final round) |
💡Note: DP questions aren't commonly tested for internship & new-grad roles at FAANG companies, but it doesn't hurt to get a good grasp of the basics!
Question | Difficulty | Company/Notes |
---|---|---|
Climbing Stairs | 🟩 | Coding challenge question |
House Robber | 🟨 | Citadel |
Best Time to Buy and Sell Stock with Cooldown | 🟨 | Citadel |
Longest Palindromic Substring | 🟨 | A Stanford CS homework question |
Maximum Subarray | 🟨 | NVIDIA |
Longest Increasing Subsequence | 🟨 | Meta |
💡 Note: Big-O questions are asked in just about every technical interview (especially in FAANG), so be sure that you are familiar and comfortable with time and space complexity questions!
Resource | Notes |
---|---|
Introduction to Big O Notation and Time Complexity | Great refresher video to review key concepts for time/space complexity |
Big-O Cheat sheet | Self explanatory |
Practice Questions on Time Complexity Analysis | GeeksForGeeks post with a few practice questions |
💡Note: System design questions are an important part of the technical interview that allow you to showcase that you are more than just a code monkey. Take a step back and look at the bigger picture – who is your customer, what are your constraints, how would you manage security/traffic? Show that you're able to design an effective program – and use common sense.
Videos/Resources |
---|
System Design Interview with Ex-Googler |
Tiny URL |
Parking Lot System |
Uber App Design |
Tinder-like Service |
💡 Note: Threading/OS questions are pretty uncommon for most SWE interviews – I was only asked OS questions when interviewing for quantitative finance firms and some system-specific roles (performance engineering) at FAANG companies!
Videos/Resources | Notes |
---|---|
Intro to Processes & Threads | Great intro video to basic concurrency |
Difference between process and thread | Important concepts to know |
Difference between forking and multithreading | Important concepts to know |
Commonly Asked Operating Systems Interview Questions | GeeksForGeeks post for OS interview prep |
People often overlook behavioral questions – and shockingly, I've heard of friends that have aced the coding parts of interviews only to struggle and ultimately get rejected because of the behavioral interview. Here's my favorite blog post on how to approach behavioral interviews!