Disclaimer: This article was written few years ago and may no longer be relevant as software engineering has changed a lot in the last few years. This is what may be more relevant now: Future of Software Engineering - Gaurav ChandakThe 'SDE 2 Interview Prep Guide' is aimed at helping existing SDE-2s and seasoned SDE-1s to prepare for SDE-2 interviews at product-based companies.
In this guide, I have covered the different types of interview rounds and general tips and resources for each of them. All of these resources were used by me during my switch to an SDE-2 role.
For basics and foundation building, please refer to the SDE-1 interview preparation guide.
Interview Rounds for SDE 2 roles
SDE-2 interviews at most product-based companies have 2 or more of these rounds:
- Data Structures and Algorithms (PS/DS Round)
- Machine Coding Round
- System Design Round (High-Level Design or Low-Level Design)
- Hiring Manager Round
- Bar Raiser Round (at Amazon and Uber)
Most companies will have 1 or 2 DSA rounds, a machine coding round, a system design round (HLD/LLD), and a hiring manager round.
Data Structures and Algorithms Round
DSA (or Problem Solving) Round is the most popular interview round and there would be 1 or 2 of these rounds in almost all companies.
Your fundamentals should be strong for these interviews to go well. Looking up solutions during practice or worst mugging up solutions will not help. Please go through some general guidelines here.
Tips
- The only way to get better at DSA rounds is practice. Do not look at solutions unless you've spent a good amount of time on the questions. Solving 30 questions all by yourself is much much better than solving 60 questions by looking at online solutions. Trust me on this, I have seen the results of both these ways.
- Instead of solving 1000s of problems, solve a curated list of questions and do it well. Try to have good topic coverage and focus on your weak topics a bit more.
- While practicing, try to finish problems within a stipulated time. Usually, you're expected to solve 2 problems in almost every DSA interview.
- Before any interview, you can solve company-specific questions to get an idea about the topics and difficulty level of the problems. Do not go with the expectation of getting the same questions.
- If you are interviewing soon and don't have a lot of time to start with then you can pick up the best questions from each topic and solve them instead.
Machine Coding Round
A lot of companies have started conducting Machine Coding Round as their first round and this round holds a good weightage. Learn more about machine coding here.
Tips
- The only way to get better at machine coding is practice. The practice problems might seem very simple but understanding, designing, coding, and demonstrating your design within 90-150 minutes is very difficult. So, practice.
- Apart from fulfilling all requirements, you must also take care of writing good code, following good design principles as much as possible, and preferably using relevant design patterns as well, or at least you need to think of them and discuss them with your interviewer.
- Practice all of these questions before your interviews in a timed manner. Try to look up solutions online after you finish a question so that you can improve with each question.
System Design Round
Almost every company will either conduct an LLD or an HLD round for the SDE-2 roles. This is a very crucial round and can get you downgraded to SDE-1 as well if your experience for SDE-2 is borderline.
Low-Level Design (LLD)
- The first thing you need to do for LLD is to learn OOP. You should be very comfortable with OOP.
- Familiarise yourself with some common design patterns and learn to use them.
- Apart from looking at online solutions to common problems, try to solve LLD problems on your own. This will really help you get better at interviews and at your job.
- Preparing for Machine Coding Round should help you prepare for this round as well.
- Here is a great resource for LLD and machine coding solutions.
High-Level Design (HLD)
- The first and most important thing is to understand the fundamental concepts of High-Level Design before jumping on to actually designing systems.
- After giving a high-level architecture, the interviewer might drill down on one or two services, so be prepared to talk about them. They might also get into databases and scaling or into caching details. Understanding the fundamentals will make this part easier for you.
- Some resources to understand the basic concepts of system design:
- After understanding the concepts, check out some common system designs - codeKarle's System Design Playlist
- After getting familiarised with the concepts and some common systems, give mock interviews. Just looking at solutions online will not make you feel confident. You can give mock interviews on pramp.com.
- Follow a system design template while answering system design questions.
- Read engineering blogs by various tech companies to understand the world of real systems and how companies build and handle them. Reading them should be a part of your preparation, as well as your SDE career.
Hiring Manager Round
The Hiring Manager (HM) Round is also an important round and is usually taken by your future manager. Some people find this round to be very difficult but it is not if you prepare for it the right way.
Tips
- The first step is to make a document about all the work you have done in detail.
- Next, go through this article and prepare your answers in advance using the document you created. Draw real examples and explain them in detail using the STAR method.
- Prepare and write the answers to the most popular questions.
- One thing to keep in mind is you should not really lie about situations in these interviews. The interviewer will usually go into minute details and will see through the lies.
- Apart from asking behavioral questions, the interviewer might also ask to explain the design of any of your projects, so roughly sketch out the design of a couple of your best projects in advance.
I hope that you found this article helpful in preparing for your SDE 2 interviews. Please share it with your friends and colleagues to pay it forward.
