Clear the third round for a Lead Engineer

System design interview experiences

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:

  1. Screening round
  2. Coding round
  3. 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:

  1. Real-life product based questions
  2. 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?

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 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. 🙏🏼