Clear the third round for a Lead Engineer
Clear the third round for a Lead Engineer
While applying for the Lead Software Engineer positions across various companies from startup unicorns to giant MNCs, FAANG to Big 4 audit companies, I usually dealt with the following set of rounds:
- Screening round
- Coding round
- System design round
Yes, this 3rd round, system design round we will discuss. In the system design round, you will be asked to design a system, mostly in context to the real-world technologies that exist.
Interview questions
System design interview questions can be divided into two categories:
- Real-life product based questions
- An architect concept based questions
Product based questions
These questions consist of the design aspect of popular tech companies. A few of which I got asked were:
- Design a food delivery system like Zomato or Swiggy
- Design a movie hall ticket booking system like Bookmyshow
- Design a taxi ride-hailing app like Uber or Ola
- Design a social media system like Twitter
Architecture concept based questions
These are specific questions asked based on architectural concepts which are used in broad system architectures. A few of the questions I got asked were:
- Design a distributed Rate limiter
- Design a distributed Cache
- Create a UUID
- A system is getting slower, how do you find the bottlenecks and how will you resolve those
- How will you design an URL shortener
Preparations
I have prepared for 3 months consistently for the system design rounds. Initially, I got rejected by multiple companies due to poor performance in this round. How did I prepare?
- System design primer by Donne Martin
- System design interview by Alex Xu
- YouTube channnel by Gaurav Sen
- YouTube channnel by Exponent
- Youtube channnel by Narendra L
- Leetcode System design discussion
These helped me to get a grasp of the required materials. Still, there was a long way to go but got basic ideas on common specific questions like:
- Difference between performance and scalability
- Identifying read-heavy and write-heavy systems
- The differences between SQL and NoSQL DBs with their strengths and usages.
- Which NoSQL DB to use under which scenarios.
- When a monolithic application is a good design
- Difference between the load balancer and reverse proxy
- What happens when you type www.google.com
- How to convert an asked question into functional and non-functional requirements
- When simply creating a hash table will solve the issue and many more
You get the idea. All the best. Thank you. 🙏🏼