Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
What’s Wrong with Most Advice?
It’s aimed at entry & junior level positions.
Don’t spend all of your time on LeetCode.
Modern interview theory
Companies have a maximum of 6 hours to evaluate a candidate. This is not enough.
- Without sufficient time to evaluate real skills, proxies must be used instead.
- Proxies should be very difficult to imitate.
Coding is necessary, but not sufficient.
For senior positions, companies are looking for applicants who can contribute meaningfully to projects that will take many people years to complete.
The best proxies for system design & leadership are stories of past experiences building big systems and leading teams of engineers.
Interview Phases
- Coding
- System Design
- Leadership
Behavioral vs Situational
System design questions are behavioral questions disguised as situational questions.
Situational: what would you do in this situation?
Behavioral: tell me about a time when you were in this situation and tell me exactly what you did.
System design questions aim to discover whether you’ve built systems like this in the past.
Example System Design Follow-up Questions
- How can it be scaled to billions of users?
- How would you ensure uptime & resiliency?
- How do you ensure it’s fast in the presence of massive amounts of globally distributed data?
Leadership: Good & Bad Example Answers
Tell me about a time you disagreed strongly with your team.
❌ Tabs vs spaces
✅ Refactoring for testability vs speed of delivery for deadlines.
❌ Emacs vs VI
✅ Migrating to an async API to systematically eliminate operational problems vs focusing on solving those short term problems
✅ Low level vs high level API designs
How to Prepare
Allocate your preparation time according to the level of position you’re targeting.
Level | Coding | Design | Behavioral |
---|---|---|---|
Entry | 90% | 0% | 10% |
Junior | 75% | 0% | 25% |
Mid | 40% | 20% | 40% |
Senior | 30% | 30% | 40% |
Principal | 20% | 40% | 40% |
Behavioral Advice: Tell a Good Story
Create a stable of stories demonstrating that you have the experience the company needs.