How to master low level system design?

Been struggling in LLD interviews. Failed few senior level interviews only because I failed LLD rounds. How to master LLD? Things tried: Grookkking LLD Few YouTube Videos Few leetcode discussion threads I'm going through above over and over again, to get a feel about designing these systems. Any other suggestions? @Amazon and Uber guys, how do you do prepare for these interviews ? Also how do you judge interviewee for SDE-3 level roles in LLD? What's a great LLD?

Google nKzR00 Jan 5, 2021

What is low level design?

Flipkart cookie51 OP Jan 5, 2021

Implementation level details on a system design. Like design a notification system, design movie ticket booking system, design chess board, design snake ladder game etc.

Apple crvp81 Jan 5, 2021

That sounds high-level! Low-level IMO == Signal processing, firmware, kernel, OS drivers, maybe even assembly

Flipkart cookie51 OP Jan 5, 2021

You are taking it too literary. In the context of interview preparation, low level design mean Object Oriented design to solve a problem in a manner respecting design principles like SOLID, Using appropriate OO design patterns, low coupling, high cohesiveness etc.

Amazon elatedowl Jan 5, 2021

I agree with apple

Microsoft chillwlb Jan 5, 2021

LLD is all about abstractions, just try to break a problem into a generic interfaces, and tie them together ... ofc. read all patterns and books and what not :) In my opinion LLD is something that comes with experience.

Flipkart cookie51 OP Jan 5, 2021

Difficult to do so in a 30-45 mins interview, especially if you haven't worked on a similar problem before. Most of the time, defining the specs takes 10-15 mins itself. Largely the struggle is with time constraints more than anytht else.

KeepTruckin PyQe48 Jan 5, 2021

In every system, you have common building blocks. If you are good with at least one tool/software in each area, you can do a decent system design discussion e.g. - pub-sub - transactional system - cache - load balancer, rate limiting etc - streaming systems - security layer - authentication - crons When I get a problem, I think in terms of the building blocks, then suggest the tool to do that job. Rest discussions are typically around scaling, error reporting, debugging, maintenance etc

Amazon gGKK13 Jan 5, 2021

Ok means object oriented design not systems design

Amazon gGKK13 Jan 5, 2021

It's funny how object oriented design is now called low level design. I used to think it is more of a FW design which is low level. There are several excellent books on OO analysis and design. One by Grady Booch. I'd suggest read one of those. Then find examples online and try to create your design first, then compare with given solution and understand what was good what's was bad. Also read design patterns and understand how to apply them. At the interview stage you should be comfortable moving from a larger scope design (e.g. modules/packages) into specific modules where you talk about class diagram, inheritance vs composition, interaction between different classes/objects, design patterns etc. The effortless moving between layers of abstraction in a logical way shows depth and ability to decompose problems and synthesise solutions. It is a very good signal I look into when I interview. This does come with experience and is always challenging the only way is keep on learning and doing it.

Confluent nosrv404 Apr 2

I failed because of OOD today :( and was asked to try after 6 months

LinkedIn vwtsclnhpf Jan 5, 2021

Learn about Facebook System Design Interview https://www.youtube.com/watch?v=hykjbT5Z0oE