ποΈπ©βπ»π Most Tech Interview Prep is GARBAGE
π‘ 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.
π Book Recommendations
- π» Software Engineering Interviews:
- π¨βπ» Cracking the Coding Interview: 150 Programming Interview Questions and Solutions by Gayle Laakmann McDowell. A great resource for interview prep! π
- π Ace the Software Engineering Interview: An Interview Preparation Framework to Land the Job You Will Love. π
- βοΈ System Design:
- πΎβ¬οΈπ‘οΈ Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann. A deep dive into distributed systems. π
- π₯οΈπ System Design Interview - An Insiderβs Guide by Alex Xu. π‘
- π Leadership in Software Engineering:
- πΆβ¬οΈπ¨βπ»π The Staff Engineerβs Path by Tanya Reilly. For senior engineers looking to level up! π
- π€ Become an Effective Software Engineering Manager by James Stanier. A practical guide to management. β¨