And way harder than most SWEs can handle intellectually. Just talk to a bunch of people, they are all confused af. Like if you can comprehend DDIA (extremely unlikely that you do) and apply what you read from it, you are already ahead of 99% of software engineers The problem is, SD isn't conducted properly and let subjective judgement from interviewer interfered way too much. I view SD as a "learn everything" for 4 years of undergrad kind of interview. Most devs can't even do LC mediums, let alone "design instagram and uber" in 45' lmao. The majority of software engineers from L3-L5 are all confused af, and most staffs got to where they are via promotion and communication, not by being a top 1% engineers.
Lol
100% agree and the expectations differ depending on the interviewer. Plus for ppl like me who had limited exposure to distributed systems we have to over-rely on book knowledge
I've had an SD interviewer who I've had massive trouble explaining any concept to because he wasn't aware of most of the reference systems or even research... Worst interview of my 5 at Google, with it being my strongest subject by far.
100% true, even if we had best answers it’s all subjective and end it’s all getting waste of time and energy
I feel the opposite. I can think well in abstract design approach and put pieces together quite well. But, when it comes to algorithm design I shit my pants
tell me how many people who build Instagram or uber or YouTube in an interview actually build systems end to end.... however anyone who does lc uses it on their job... you can't have an effective team with every engineer being top 1%... nothing will ever get done or produced from that team just my 2c
If you are a senior/staff engineer, what separates you from junior engineer is your ability to design systems and have broad domain knowledge. Otherwise you just a code monkey
I don't know if most people get to use the algorithms and DS they practice in LC in real life codebase, a lot of dev work is just meh, for example can you tell me if you've ever used backtracking or DP in production code ?, That being said I do believe that practicing LC made me a better engineer in some ways, as it forces you to think about space and time complexity and think about edge cases etc. Also knowledge is never useless, I got lucky and found a use for BFS recently for a problem at work for the first time in my career and that felt nice.
yes Google is the peak of SWE.
system design is different from leetcode in the sense it’s harder to practice individually. leetcode anyone with a laptop can go grind 600 problems in a month. i found i am able to intellectually grasp large-scale distributed systems, quite well; however that never really accelerated until i worked on one (and had to build and migrate some from scratch), then you really understand the concept of trade offs, design approaches, strategies etc. before that it’s just videos, and poking around in AWS/Google Cloud which is useless tbh
good take. I was able to grasp DDIA but building and productionizing distributed systems is where the real growth is but that is true for almost anything in software engineering
Judging from how you think doing 600 lc a month is easy or even possible for a mediocre eng, i doubt you understand ddia or distributed system as well as you think
I’ve never failed a sys design but I’ve failed dozens of coding rounds
The reason SD is hard is because it's subjective as hell, with no accounting for the actual skills of the person asking the questions and their expectations of the "correct" answer. Also unless you've been working on distributed systems at scale for a while, (which is not gonna be the case for most L3 and below), you are gonna have to rely on book knowledge, so it ends up rewarding people who have the time to read and memorize those books, which is mostly students and single people. It has the same pitfalls as LC, where it rewards people on things that may not have any bearing on how they perform at the actual job.
well, that’s a bad take lmao