Technical interviews can feel like a trivia contest—until you recognize they’re usually testing a few repeatable skills: communication, structured problem-solving, and tradeoff thinking. Here are practical, transferable patterns you can use in live coding, whiteboards, and take-homes.
1) Lead with a “Problem Framing” mini-script (60–90 seconds)
Before touching code, quickly align on what you’re solving. A solid framing sounds like:
- Restate the goal in your own words
- Ask 1–2 clarifying questions (inputs, constraints, edge cases)
- Confirm expected output format
- Mention a rough approach: “I’m thinking X; complexity should be around Y”
This buys you time and signals senior-level thinking.
2) Use a repeatable loop for coding questions
When stuck, don’t panic—switch to a process:
- Examples first: Walk through a small input and write expected output.
- Brute force baseline: Describe the simplest correct approach.
- Identify the bottleneck: Where does time/space blow up?
- Apply a pattern: two pointers, hash map, sliding window, BFS/DFS, heap, DP.
- Validate with tests: normal case, edge case, large case.
Quick pattern prompts
- “Do I need to check existence/count fast?” → hash map/set
- “Is it sorted or can I sort?” → two pointers / binary search
- “Contiguous subarray/substring?” → sliding window / prefix sums
- “Shortest path / levels?” → BFS
- “All paths / components / cycles?” → DFS + visited
3) Narrate your thinking like you’re pair-programming
Many candidates fail silently. Try:
- Say what you’re doing before you do it (“I’m going to store counts in a map…”)
- Call out assumptions (“If duplicates exist, we should…”)
- Name tradeoffs (“This improves time to O(n) but uses O(n) space.”)
Interviewers aren’t just grading correctness—they’re evaluating how you’d collaborate day-to-day.
4) Don’t skip “finish quality” (it’s a differentiator)
In the last 2–3 minutes:
- Add 2–3 targeted tests (especially edge cases)
- Do a quick complexity recap
- Mention one improvement if you had more time (cleaner API, better naming, memory optimization)
5) If it’s system design: structure beats brilliance
A simple structure works well:
- Requirements → APIs + data model → high-level architecture → bottlenecks → scaling (cache, sharding, queues) → reliability (timeouts, retries)
Even if you don’t know the “perfect” answer, clarity and tradeoffs go a long way.
If you had to improve one thing before your next technical interview—problem framing, pattern recognition, or communication while coding—which would it be, and what’s currently getting in your way?