Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
Most software engineering prep videos on YouTube are only good for entry-level jobs. You deserve more than that. Let me share .
For the love of god, stop spending all of your precious interview, study time on coding problems if you’ve been studying for a tech interview, you’ve probably been prepping for software engineering interviews the wrong way, especially if you want to land a senior principal or staff engineering role. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
At a fan company in this video i’ll explain why most interview, prep resources, especially on youtube, are garbage and what you should do to effectively prepare for a technical interview if you want to land a senior role meta here, i’m a principal engineer at amazon, where i’ve Spent the entirety of my almost 15-year career, i’ve conducted over 800 technical interviews, i’ve also trained hundreds of software engineers on how to conduct tech interviews. You can disagree with my opinions, but you can’t say i don’t know what i’m talking about. My advice is based on my experience and i believe that it holds true for most large companies, especially fang companies. Okay. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
So why is most advice about software engineering interviews garbage the reason simple? It’S all geared toward junior and entry level positions, the emphasis on coding, data structures and algorithms is warranted if you’ve just graduated from college or even completed a boot camp. Even then grinding leak, code, questions or god forbid, you spend good money on interview, prep courses. This is so much about the point of tech interviews. What do you mean?
Let’S get meta, you have to understand why tech interviews exist in their current form. There’S simply not enough time to know if you’re a good fit for the role in level. They have to make as good use of what little time they have because they’re about to make a big decision, let’s think about it from their perspective, they need a good software engineer and, if they’re a big company, they need an army of software engineers.
Most Tech Interview Prep
Stakes are high if they hire a bad one, it will take them six months to know that it’s not working out then it’ll take at least six months, if not a year to manage them out all the while they’re paying high salaries benefits they have to pay For the rent in the office and the computer, they’re writing bad code on if you factor in the cost of recruiting this higher is gon na cost on the order of five hundred thousand to a million dollars. All of this, on top of opportunity costs, there are also knock-on effects.
Bad hires bring the software quality down, cause more problems that cost money to solve. They lower team morale, and if it’s a small company, it might even make the difference as to whether they survive. No business has 12 to 18 months to waste. On the other hand, a good hire does the exact opposite. Not only do they write amazing code, they solve business problems before they happen and increase quality not only of the existing software, but they install mechanisms that increase future quality.
They grow other engineers on the team and replicate themselves also because they have experience. They know a lot of other good engineers if it’s an awesome place to work. They’Ll recruit other top performers to come to the team. Okay, fine stakes are high. The second part is that, even though tech interviews take all day, there’s not enough time to do a proper assessment, that’s why internships are the best path for getting an entry-level job.
It’S a two-month job interview for senior and principal roles. The maximum you have is six hours to determine if a person is a good fit for the roll-in level. That’S just not enough time. At amazon, some teams don’t expect new hires, even at a senior level, to make meaningful design contributions for six months much less six hours. Therefore, there are two pillars to modern interview: theory. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
First, since actual code, design and leadership evaluation takes too long. The only reasonable approach is to rely on proxies for the same second, these proxy should be very difficult to imitate. I don’t apply data structures and algorithms daily, but i do know about them, and i also know how to code. That’S why people ask data structures and algorithms questions? If you don’t know how to code there’s no chance, you could fake it.
So it’s a proxy that allows companies to effectively screen people out if you’re interviewing for a senior principal role coding is necessary, but not sufficient. Companies are looking for people that can contribute meaningfully to projects that take many people potentially years to complete for fan companies. These are usually big systems and they’re. Looking for people that are engineering leaders, the best proxies for system design and leadership are stories about people that have prior experience, building big systems and leading teams of engineers. So the way to think about this is that there are three levels to the software engineering interview, video game.
You won’t get an offer unless you beat all three levels level. One is coding software engineers code. If you don’t know how to code, you don’t know why. N, squared algorithms are bad, you don’t know that stack, overflow isn’t just a website. The proxy has done its work. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
This is the level most interview. Prep focuses on focusing on beating the first level over and over again is a waste of your precious time level. Two is system design, i’m defining a system as a set of software components that work together to achieve an outcome that takes the coordination of many people to design, implement test and maintain the reason system design questions are asked is because they need people to make positive And significant contributions to their existing systems, you can’t get good at system design questions by approaching them like coding, problems,
GARBAGE. (From a Principal Engineer at Amazon)
building a big bridge takes years and the collective efforts of many many people you can design and create a scaled version of the bridge, but until you’ve Built a few, you won’t know what to look out for what things could be real problems if you take shortcuts and where you can save time by doing things more efficiently. Here’S a secret system, design questions on the surface, look like situational questions, but in reality they are veiled, behavioral questions. Let me explain the difference between situational and behavioral problems situational questions take the form of what would you do in this situation?
All coding questions are situational. Take the example of balancing a binary tree when you ask this coding problem, you’re, saying: hey candidate, you want a job here, pretend you needed to balance a binary tree or you got fired. How exactly would you do that? The other type of question you’ll see in an interview, is behavioral. They take the form of tell me about a time you were in this situation and tell me exactly what you did.
The distinction between situational and behavioral questions is really important. Situational questions are the best proxy for the ability to code during an interview. Behavioral questions are the best proxy for system design and leadership. Asking a coding question as a behavioral. One sounds really odd. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
Tell me about a time you needed to balance a binary tree. Similarly, companies avoid asking leadership questions in a situational manner, because it’s easy to answer these sorts of questions abstractly, which means that it would be easy to imitate. Tell me what you would do if you disagreed strongly with your team is a much different question then tell me about a time. You disagreed strongly with your team. So back to my secret system, design questions sound like situational questions but in reality, they’re veiled, behavioral questions when the interviewer asks you about how you would design the facebook feed.
It sounds like a situational question, but in reality the interviewer is probing you on whether you have built systems like this. In the past, you might sketch out a system that solves this problem on a small scale, but the inevitable follow-ups will be. What would you do if this needed to scale to millions or billions of people? How would you ensure uptime and resiliency? How do you make sure it’s lightning fast, even though there’s so much data worldwide?
These questions are easiest to answer. If you have the experience, if you don’t, it will be exceedingly apparent if you want to know how to get good at system design or find this type of content useful. Let me know in the comments below or by smashing that subscribe button so level. One is code level, two is system design and the final level is leadership. Why is the last level leadership you ask? Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
The reason is because senior and principal engineers are responsible for the tech teams, but do not have direct reports like a manager. Leadership without authority is really hard to do. It requires that you have the technical drops to contribute meaningfully to big projects, handle problems and headaches that pop up make sure that the software quality is high, that the software architectures, the system of systems will scale to the product or business. But you can’t order people around the set of skills is exceedingly rare and that’s why fang companies pay the big bucks for senior engineers. Behavioral questions have a wonderful property that makes them particularly good proxies.
You can ask the same question to junior senior and principal engineers. Their answers will both tell you whether they are a good fit for the company, but also based on the scope of their answers. They also tell you indirectly what level the candidate is. It doesn’t matter if people are really strong, coders or system designers. If they have small potato answers to leadership questions, they will be either down leveled or passed on.
Let’S play a game i’ll start to answer the same question in different ways. Tell me if it’s a good answer and what level they should be. Tell me about a time. You strongly disagreed with your team. Let me tell you about the tabs versus spaces war of 2019.
I configured all of our builds to fail if the formatting didn’t comply with my personal formatting template. I wanted to refactor some code so that it was easier to test. We had a bunch of bugs that were due to poor software quality. My team disagreed not because they didn’t like tests, but because we had crazy, tight deadlines. So i really like emacs.
amazon review products
We were having operational issues with the big kitchen sink api, so i proposed that we moved to an asynchronous processing model. It would make our lives so much better in the long run, but my team didn’t like it because it would be a lot of work and they didn’t think it was commensurate. With the operational issues we were facing. We made an acquisition of a company and my vp wanted to create an aws service out of it. My team wanted to position the web service with underlying abstractions that catered more towards developers who were okay with handling low-level details, but i wanted to create a service that packaged the functionality in higher level apis that made it easy for developers of a certain type of Application to move quickly, so how should you prepare?
The first step is to allocate your study time proportionally based on expectations at that level. The three aspects of interviews are all important, but in different amounts for junior entry-level interviews. I recommend prepping 90 coding and 10 behavioral questions if you’re coming straight out of school or a boot camp. If you have some, but not a lot of industry experience, i would adjust this to 75 coding and 25 behavioral. You won’t be expected to know much about system design and the expectation is that you don’t have a lot of experience to draw from for behavioral questions. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
If you have some experience but aren’t targeting a senior engineering role, i recommend forty percent coding, twenty percent design and forty percent behavioral leadership. Note at that. These levels, while coding, is still a significant percentage design and behavioral questions are more than half of what you should be preparing for for senior engineers. The percentage i recommend is 30 code, 30 design and forty percent leadership and for principal engineers i recommend twenty percent code. Forty percent design and forty percent leadership preparation to be clear. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)
I’M not saying don’t do coding problems. No fang company will hire you if you can’t code. My point is that it’s not smart to overemphasize the coding aspect, because, assuming you do well enough with the code, the focus will immediately shift to figuring out how senior you actually are. Here’S the best piece of advice. I can give you for behavioral questions.
amazon best gadgets foxshopcenter
The most effective way to answer behavioral questions is to tell a good story. Why? Because stories allow you to communicate multiple dimensions of information efficiently, the best stories have good character. Development built in have a beginning middle and end and are therefore memorable and can communicate many points and best of all, since you already know that interviews are about employing proxies stories about how you led your team through difficult situations, make the job of the interviewer much Easier, their cognitive load is lessened because you’ve done their work for them. It’S the secret that will take your interview performance from good to exceptional.
It’S critical! You create a stable of stories that demonstrate that you have the experience that the company needs. You can’t communicate that you’ve been operating at a senior level. The outcome will be the same as if you completely bomb the coding interviews, you’ll be rejected, so please, for the love of god. Don’T spend all of your time grinding, lead code, questions if you want to know what it takes to grow into a senior staff or principal engineer, hit that subscribe button for more content that will help guide you through that journey.
I really enjoy making this content, and i would love to go on this journey together have an awesome day. You. Most Tech Interview Prep is GARBAGE. (From a Principal Engineer at Amazon)