I’m wondering if there is a system design class like interview coding boot camp that teaches system design specifically for E4 level positions? I’m coming in on 1K LC pretty soon, but my system design is weak. I’d like to get better at this as I have literally zero experience in this. Also, I have never used sql databases in my life, but I do understand what that is from a high level perspective. If anyone is willing to do personal classes specifically for E4 role, please let me know. I’m going to compensate for your time as well obviously. #amazon #facebook #google #apple
Best thing for design is to join a startup or a new team that needs to build new stuff. You learn best that way. Even grokking and ddia really click when I can use them at work.
This is absolutely ideal. Is there any course where I can learn these through practice and implementation, rather that just reading grokking and such?
Most ideas deal with scale. Sample projects rarely deal with scale. Enterprise products cost anywhere from thousands to 10s of millions of dollars to run per month, so hard to practice without the resources of a company.
Tc or gtfo with yoe
I’m HW engineer. Yoe 8. TC 180
I feel these are not structured per se. just interview questions, what if I’m asked something other than these questions? I’m trying to learn the basics and then attack interview style questions.
Then you remain learning basics all through u r life. First learn what these people share. Then you read on top of this. Never start from scratch
If person learn system design from. Online class, is there a chance that the person will struggle when hired?
Why would this be the case? If I know the concepts, implementation I think I have to learn it at the job. I might be the dumbest one in the cohort in the beginning, but I’ll eventually learn things in the job.
I am just asking. In interviews they mostly expect that u should have worked on system design in practical applications. Would lobe to know from people who went into big techs by doing system design courses,how do they feel?
No, design is the easy part
Can you explain? And if you are good at it, with some spare time on your end, can we do a session. I’ll compensate for your time :)
Going to meetings about getting approval to build anything is the hard part
😂😂😂😭😭😭 true shitt
Try the MIT lectures for distributed systems and do the class assignments where possible. I'm new to systems design as well, and I started this one last week to get a lower level exposure first before I look at higher level systems. I like to learn bottom up as its less memorization and more intuition/induction.
Can you point me to the course number?
6.824
I don't know a great practical course that exists for this, but if you have a long timeline and want to ace systems designs interview wise and in real life this is what i'd do if starting from 0 and had at least 4 months. If you have less time, you can just work harder at memorizing concepts from item 2, but you should consider paying an engineer on interviewing io or something so that you can practice talking about this tech without sounding like a noob, im sure you'll have blind spots without this You need these skills 1. Estimation Read the grokking case studies, make flashcards, straight up memorize realistic values for systems and practice deriving requirements from them. Eg, how much traffic is "realistic" you sound way smarter when you can derive (oh, 300M DAU, this xyz usage, well I think about 5k tweets/s would be a good starting point). Twitter has 6k tweets/s or so in real life as an average, and peak was 143k/s. If you somehow derived an insanely low or high number you'll come across inexperienced. Eg if you think 100 t/s or 500k t/s etc. Practice writing the api interfaces, machines needed, etc and cross check grokking. 2. System experience that sticks (reading doesn't stick in your memory) Build a toy representation of components in Grokking. Eg. create a cassandra cluster, write a schema, write a query, etc. I'd recommend you build something with MySQL/Postgres, Kafka, Cassandra, Hbase, Redis, and websockets and use a pub/sub technology and a fanout. Write some simple schemas and queries, also some indexes. I also highly recommend making a "toy" system for the top K items style problem and writing a map reduce fn, and a streaming processing fn in kafka. Also create a sharded DB. Also write or deploy/configure a LB. Bonus points if you can dockerize this all and/or deploy it on a AWS, Azure, or w/e platform 3. Tradeoff explanations You need to just straight up memorize things like pros/cons of using Cassandra over another similar technology. You should be able to clearly explain what the benefit/cost is for each component you suggest. If you can't, then don't suggest it The below is bonus/nice to have but if you get 1-3 on point you'll be in the top 5% imo 4. System specific info Stuff like hashing used in tinyurl, count min sketch, etc is a bonus 5. Real systems Grokking has some shitty/and or simplified/out of date designs of real systems. Watch videos/ read engineering blogs and learn about the details. Also, if you don't have proof you studied (eg written notes, or quizzing results etc), don't consider that studying. Also make sure you only design a system that solves the exact problem you define in the interview, don't design tangential stuff or add more features than bare min. treat it like building an MVP product. Grokking the System Design Interview https://www.educative.io/courses/grokking-the-system-design-interview when ur done with basics.. best sys design vid/channel ive run across https://www.youtube.com/watch?v=bUHFg8CZFws&t=607s https://sre.google/workbook/non-abstract-design/
Thank you for taking time to write this. This is very structured and detailed. I’d like to do the projects to get the feel, like you’ve mentioned. Honestly I don’t even know where to start.. are there any toy projects I can do to get a feel for databases, sharded DB, LBs etc? If there is a project I can do from scratch which covers most of the above mentioned topics, I’ll do it and learn that way, especially because memoization isn’t my strong suit.
yw. it's a lot less complex than you're making it. just find a docker compose file for the service and either get a gui to interface or use the cli. the "projects" can be as simple as adding a few tables and writing a SQL query to insert/fetch for example. eg you don't need to build an entire "fb messenger". I hate memorizing, but there's no other way, so ull have to suck it up and make flashcards and quiz daily until it's burned into your brain https://levelup.gitconnected.com/creating-and-filling-a-postgres-db-with-docker-compose-e1607f6f882f
I just landed a new role but will continue studying systems design over the next year or so in prep for my next role. Here's what I'm doing... Reading through DDIA and also hired a senior SWE from Google to work with me through specific problems. Planning on meeting with them 1-2 times a month. I think nothing beats working with a more senior person as if you were trying to design a system and talking about the whys/trade-offs.
Where did you find these mentors? I’d like to get one for career as I’m trying to enter this field afresh
Software Engineering Career
Yesterday
820
If your team does daily standups, your manager is a micromanager
Tech Industry
6h
189
Is Israel getting bad PR the reason for banning tik tok?
Software Engineering Career
9h
1982
L4 Google -> 45 interviews, 5 offers, AMA
World Conflicts
Yesterday
763
Peaceful Protest Hasn’t Worked and Has Been Met With Aggression.
Tech Industry
Yesterday
443
Which company makes the best AI?
1k LC? What is your coding game now like
Not where I want it to be at, but I’m decent at it
How long did it take