As soon as the interview is scheduled, request as much information as possible about the interview from the recruiter. They may not be able to tell you everything, but every bit counts!
Who will be interviewing me? What is their name or what team/product do they work on?
How many problems do I have to solve?
What will the difficulty of the problems be?
Are there any particular topics I should expect?
Should I prioritize solving all problems in time, or explaining my thoughts and writing clean code?
Do a mock interview of the same format your interview will be: Behavioral, Algorithms, or System Design
Practice algorithmic problems while simulating real interview conditions.
After a practice problem or mock technical interview, use this rubric to evaluate your performance.
Points | Task |
---|---|
3 | Asking clarifying questions, discussing edge cases, and planning your solution. |
3 | Communicating what you're doing and having a back-and-forth dialogue with the interviewer. |
3 | Getting a working solution. |
3 | Time/space complexity analysis and discussing possible optimizations (if any). |
3 | Overall code cleanliness and adhering to coding conventions. |
Ask clarifying questions to understand problem.
Ask about edge cases and assumptions being made.
Mention any patterns you recognize from the problem keywords or requirements.
Keyword / Requirement | Pattern |
---|---|
Filter out Duplicates | HashSet |
Tracking frequency of String characters / Array values | HashMap |
Kth Largest/Smallest/Most frequent | Heap, QuickSelect |
List out all Possibilities | Backtracking |
Sorting an Array with Bounded values | BucketSort |
Given a Sorted Array | Binary Search, Two Pointers |
Storing and Searching for Timestamps | Binary Search |
Cycles, Components, or Redundant Edges in a Graph | Union Find |
Log(N) Time Requirement | Binary Search |
Working with Parentheses / Order of Operations | Stack |
Checking contiguous Substrings/Subsequences | Sliding Window |
Checking noncontiguous Subsequences | DP, HashSet |
Searching for Word Prefixes | Trie |
O(1) Space Requirement + Math/Number Problem | Bit Manipulation |
Input can be represented as a Directed Graph | Topological Graph |
Shortest Path in a Graph | BFS, Multisource BFS |
Explain the best conceivable runtime for the problem, and why that is
Brainstorm potential solutions