There's a massive gap between candidates who get offers and those who don't. It's not always about who knows more algorithms. Often, it's about who communicates better, handles pressure smarter, and makes fewer costly mistakes.
After reviewing hundreds of interview recordings and feedback from FAANG interviewers, I've identified 10 specific behaviors that separate great candidates from average ones. If you implement even half of these, your interview performance will noticeably improve.
1. They Ask Clarifying Questions Before Starting
What average candidates do: Jump straight into solving the problem.
What great candidates do: Spend 60-90 seconds asking clarifying questions.
Examples:
- "Are the inputs always positive integers, or should I handle negatives?"
- "Is there a constraint on space complexity?"
- "Should I optimize for time or space?"
- "What's the expected input size? Are we talking 10 elements or 10 million?"
- "Should I assume the input is always valid?"
This achieves multiple things:
- Clarifies ambiguity (preventing you from solving the wrong problem)
- Demonstrates communication (interviewers value this highly)
- Buys you thinking time without it being obvious
- Shows maturity (real engineers ask questions before diving in)
Interviewers almost always say "good questions" when you ask relevant clarifications. This positive reinforcement early in the interview sets a good tone.
2. They State Their Approach Before Coding
What average candidates do: Mumble something vague, then start typing.
What great candidates do: Clearly articulate their approach and get confirmation before coding.
Example dialogue:
"So my approach is going to be: first, I'll iterate through the array once to find the target sum. I'll use a hash map to store the values I've seen so far. For each element, I check if (target - element) exists in the map. This gives us O(n) time complexity and O(n) space. Does this approach sound good to you?"
This is powerful because:
- You're not coding wrong approaches (saves 15+ minutes of dead-end coding)
- Interviewer can redirect you if your approach is suboptimal
- Demonstrates algorithmic thinking (not just coding ability)
- Filters out off-track ideas early (vs. discovering 30 minutes in that your approach won't work)
Great candidates sketch their approach first. They might even draw on the whiteboard before writing code.
3. They Write Pseudocode (Or Speak Code)
What average candidates do: Jump straight to actual code in their language of choice.
What great candidates do: Speak through the logic in a language-agnostic way first.
Example:
"Alright, so the algorithm is: initialize an empty hash map, iterate through the array, and for each element, check if its complement is in the map. If it is, return the pair. If not, add it to the map and continue."
Then translate this to code:
def find_pair(arr, target):
seen = {}
for num in arr:
complement = target - num
if complement in seen:
return [seen[complement], num]
seen[num] = True
return NoneThis approach:
- Ensures you have the logic right before coding (reduces bugs)
- Makes code writing faster (you're not thinking while typing)
- Demonstrates communication (you can explain in plain English)
- Catches logical errors early (before you've typed 50 lines of code)
4. They Handle Edge Cases Proactively
What average candidates do: Code the happy path, then react when the interviewer asks about edge cases.
What great candidates do: Mention edge cases as they code.
Example:
"I need to handle three edge cases here: empty arrays, arrays with one element, and when no pair sums to the target. Let me code for those..."
Then they explicitly handle each:
def find_pair(arr, target):
if not arr or len(arr) < 2:
return None
seen = {}
for num in arr:
complement = target - num
if complement in seen:
return [seen[complement], num]
seen[num] = num
return None # No pair foundGreat candidates:
- Think about edge cases before coding
- Mention them explicitly (shows thorough thinking)
- Handle them in their code (no "Oh, I guess I need to check for that")
5. They Explain Trade-offs Naturally
What average candidates do: Solve the problem one way, then awkwardly discuss optimization if asked.
What great candidates do: Discuss trade-offs as they develop the solution.
Example dialogue:
"I could solve this with two nested loops—that's O(n²) time, O(1) space. But I can do better with a hash map: O(n) time, O(n) space. The hash map approach trades space for speed, which is usually worth it for large datasets. Let me go with the hash map approach."
This demonstrates:
- Algorithmic sophistication (you know multiple approaches)
- Real-world thinking (you understand trade-offs matter)
- Communication (you're explaining your reasoning)
- Good judgment (you're choosing intelligently, not blindly optimizing)
6. They Test Their Code (Not Just Mentally)
What average candidates do: "I think this works. Let me trace through an example mentally."
What great candidates do: Actually run through an example with their code.
Example:
"Let me trace through this with an example. Array is [2, 7, 11, 15], target is 9. First iteration: num = 2, complement = 7, not in map yet. Add 2 to map. Second iteration: num = 7, complement = 2, YES, 2 is in the map. Return [0, 1]. Great, that works."
Then they try an edge case:
"Let me check an edge case. Array is [], target is 0. The function returns None immediately. Good."
Testing:
- Catches bugs before the interviewer finds them (critical advantage)
- Shows attention to detail (you actually verify your work)
- Demonstrates logic verification (not guessing)
- Buys you confidence (you know your solution works)
7. They Optimize Without Being Asked
What average candidates do: Code a solution that works, submit it.
What great candidates do: Optimize proactively.
Example:
"This solution is O(n²) because of the nested loop. But I can optimize it. If I sort the array first and use two pointers, I can do it in O(n log n), which is better. Let me refactor..."
Or:
"I could pre-compute this in a better way. Instead of searching for it every iteration, I can build a lookup table first. That brings it from O(n²) to O(n)."
Optimization shows:
- Algorithmic thinking (you see inefficiencies)
- Ambition (you're not settling for the first solution)
- Code quality (you refine your work)
Note: Only optimize if you have time. Don't sacrifice correctness for perfection.
8. They Communicate Constantly (No Silent Coding)
What average candidates do: Write code quietly, then explain at the end.
What great candidates do: Narrate their thought process continuously.
What narration sounds like:
"Alright, so I'm declaring a hash map here to store the values I've seen. Now I'm iterating through the array... For each element, I calculate what I need to find... I check if it's in the hash map... If it is, I return the result... If not, I add the current element to the map and continue..."
This:
- Keeps the interviewer engaged (they're not bored watching you type)
- Catches misunderstandings early (interviewer can interrupt if you're going wrong)
- Demonstrates communication skills (huge for senior roles)
- Shows confidence (not nervously silent)
A good rule: if you're silent for more than 10 seconds, say something.
9. They Ask for Feedback
What average candidates do: Finish the problem, say "I'm done."
What great candidates do: Finish and ask for feedback.
Example:
"I've solved it with O(n) time and O(n) space. Do you have any feedback on the approach or the code? Is there anything I could do better?"
This:
- Shows humility (you're open to learning)
- Gives interviewer a chance to comment positively (if your solution is good)
- Might reveal requirements you missed (if there are issues)
- Demonstrates maturity (seeking feedback is professional)
10. They Stay Calm When Stuck
What average candidates do: Panic, freeze, or make random guesses.
What great candidates do: Pause, acknowledge the block, and think systematically.
Example:
"I'm not immediately seeing the optimal solution here. Let me think through this systematically. What are the constraints? What data structure might be helpful? Let me try a hash map approach..."
Or:
"I'm getting an off-by-one error somewhere. Let me trace through my logic step by step... Ah, I see it. The loop condition should be
i < nnoti <= n."
Staying calm shows:
- Maturity (you don't panic under pressure)
- Problem-solving skills (you approach problems systematically)
- Confidence (you believe you'll figure it out)
Bonus: The Power of Practice
The reason great candidates do these things naturally is they've practiced. They've done 20+ mock interviews where they've gotten feedback on communication, approach, and code quality.
When you practice coding alone, you don't get feedback. You don't realize you're coding silently, skipping edge cases, or jumping into solutions without clarifying requirements. This is why full mock interviews are so valuable—they train you to do these 10 things automatically.
Bringing It All Together
Here's how a great candidate would approach a typical problem:
- Listen carefully to the problem statement
- Ask clarifying questions (30-60 seconds)
- Explain approach before coding (60-90 seconds)
- Mention edge cases (30 seconds)
- Write pseudocode/explain logic (60-90 seconds)
- Code cleanly while narrating (8-12 minutes)
- Test with examples (2-3 minutes)
- Optimize if time allows (2-5 minutes)
- Ask for feedback (30 seconds)
Total: 15-25 minutes for a problem that feels complete, polished, and communicative.
The Role of Real-Time Practice Feedback
The challenge is that most engineers practice alone. You code, you assume it's good, but you never get real feedback on your communication, approach, or process.
This is where Phantom Code (phantomcode.co) changes the game. By listening to your interview in real-time via audio transcription, you get immediate feedback on whether you're communicating clearly, explaining your approach, and handling problems systematically. It's like having an interviewer in the room during all your practice sessions—and you can retry immediately.
Final Thought
Technical interviews aren't just about solving problems. They're about demonstrating your thinking process, communication skills, and ability to handle pressure. Great candidates excel at all three.
Master these 10 behaviors, and you'll interview at a level that impresses senior engineers.
Transform your interview performance with Phantom Code (phantomcode.co). Get real-time feedback on your problem-solving approach and communication skills. Available for Mac and Windows, starting at ₹499/month.