grok_sdi_educative
system-design-primer
grok_sdi_educative | system-design-primer | |
---|---|---|
7 | 380 | |
1,238 | 254,953 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | 7 days ago | |
Python | ||
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
grok_sdi_educative
-
I'm 19 and Just Started my CS Major; What's The First Thing I Can do to Start Working?
Grokking Systems: github.com/sharanyaa/grok_sdi_educative
-
Got hired at one of my dream companies. Microsoft. Great culture, people and benefits. Here are my preparation material. Would be helpful to others.
grokking the system design
-
Raised my TC 200% with 1.5 yoe!
Originally I took a udemy course which explained all the building blocks, like Network, caching, indexing, db etc. Once you know those you can start reading how these combine to make a system (https://github.com/sharanyaa/grok_sdi_educative gives all standard examples). I would also recommend to read blogs on large companies like Netflix, Linkedin etc to get an idea of real world examples alse.
-
Ask HN: Applying for EM Roles at FAANG?
I went through Facebook and Google interviews (as well as others) back in early 2019 and eventually accepted an offer from FB for an M1 role (was previously a senior manager at a smaller company). At FB I had a coding slot, a couple of system design slots, and I think three behavioral. At Google I didn't get any coding, but it was because of a higher level role (L7) that I was interviewing for (and did not get).
For context, I hadn't coded professionally for ~8 years at that point, so part of the prep was getting back into that. Also, I never took any algo classes in college 15-20 years earlier, so that was another challenge. I actively avoided big tech companies for years due to difficult interviews and low confidence that I would pass, not to mention a general attitude of why the hell should I spend all this time preparing for something that does not reflect the day-to-day reality (and I still hold this view strongly). But as I learned more about compensation opportunities, I decided to bite the bullet and go for it. I quit my job and spent 3-4 months preparing mostly full-time, while also lining up interviews. Pro-tip here: if you get Google interviews, start them way in advance of all others. Their process is insanely long and after 3 months of interviewing, re-interviewing, getting downleveled, changing hiring managers, etc. I dropped out of the process because I was already sitting on two offers. For comparison, Facebook took 2 weeks from starting to schedule interviews to offer.
For coding, I picked up Python - unless you know something else really well, it's IMO the best language for interviews (never used it professionally, but had not great experience from a few years back interviewing in my language of choice of C#). I got a few books to learn and refresh on the data structures and algorithms: Algorithm Design Manual (good reference, but I didn't end up having time to really go through the material there), Cracking the Coding Interview (skimmed, basic to intermediate stuff here) and Elements of Programming Interviews in Python (skimmed, intermediate to advanced stuff here). I got lucky and recalled the general approach to my FB coding problem from the EPI book. Now for the most important part - create an account on leetcode.com and start practicing. I would recommend focusing on easy and medium levels. I imagine managers would generally get medium-level questions, engineers are expected to solve medium and advanced. My approach was to identify a list of topics, then for every topic read ADM, then CtCI, then EPI, then solve a few easy and medium LC problems, rinse and repeat. I've seen folks recommend that solving ~200 LCs is enough to get comfortable. I didn't have as much time as I would've liked and did about 60. The general idea is to be able to pattern match (e.g. this type of problem needs a hash table, this is a graph problem, etc), some people focus on memorization - I think that's a terrible approach, but most companies do end up asking questions from LC (except Google apparently). With limited time I was flying through topics towards the end, would not recommend. I did pay for Leetcode Premium for a few months - lets you focus on the types of problems that specific companies are asking, was worth it for me.
Coding aside, I actually spent most of my time preparing for system design interviews. Found that my knowledge of building large systems was not nearly sufficient for interviews. My approach here was to first purchase this course: https://www.educative.io/collection/5668639101419520/5649050... and read through the basics section. It really is basic, so I was supplementing by diving deep into each topic on my own. It's still a pretty useful resource for getting an idea of what breadth I should be targeting, along with https://github.com/donnemartin/system-design-primer. Then I read Designing Data-Intensive Applications (amazing book, but incredibly dense), and finally went through all the concrete design problems on the Grokking course as well as watched a bunch of relevant Youtube videos. Felt a lot more comfortable towards the end and I think did alright on those slots. I think the concept of consistent hashing rings came up in literally every single system design interview, so be super familiar with it and various implementations. My interview experience with these was that the really senior folks were more into depth, and the less senior ones focused on breadth. I'd suggest going for both, e.g. the Grokking course and System Design Primer have decent coverage of breadth of topics, but are absolutely not enough for depth. Maybe you could skate by on breadth alone (I'd say it's more valuable than depth), but why take the chance. Some examples of going deep I encountered were talking about different kinds of load balancers and balancing mechanisms, different ways of traversing a consistent hash ring, different failure modes and workarounds in distributed systems. I originally wasn't going to memorize common latency numbers, but it came up during Google's prep session (they offered one with an interviewer, to give feedback) when I embarrassingly struggled to convert 1 Gbps to 125 MB/s.
Of course most rounds were non-technical, so I prepared for those with as many questions I could come up with in advance and recalling various scenarios in detail - super important not to assume that these will just come to you during an interview. I also put together a 65-page summary doc of all the stuff I was reviewing, most of it system-design related, that I went over frequently to refresh myself. Finally, the Blind app and levels.fyi were instrumental in opening my eyes on the crazy compensation at those companies and I was able to do a better job negotiating with this info.
I was fortunate that I had the ability to take the time off to focus on interview prep, and I would 100% not have passed the interviews without it. My cynicism about the whole process only grew, as exactly nothing from my prep was relevant to the day-to-day job at Facebook. ¯\_(ツ)_/¯
-
System Design books/website/videos recommendation?
https://github.com/sharanyaa/grok_sdi_educative (pirated though)
-
Best way to prepare for system design questions?
https://github.com/donnemartin/system-design-primer https://github.com/sharanyaa/grok_sdi_educative/blob/master/grok_system_design_interview.pdf
-
Unpopular Opinion: Leetcode isn't that hard and is much better than comparable professions
I started here: https://github.com/sharanyaa/grok_sdi_educative. It’s just a print from the course with that name on Educative (but from 2 years ago).
system-design-primer
-
10 GitHub repositories that every developer must follow
✅ donnemartin/system-design-primer: https://github.com/donnemartin/system-design-primer
- FAANG - Guia Descomplicado de Entrevistas - parte 2
-
10 GitHub Repos to Become a Better Backend Developer
View on GitHub
-
[Need Recommendation] System design concepts based repos that provide bird's-eye-view
I've been giving interviews for past couple of months and this github repo has helped me so much for system design perspective and I can see myself excelling at interviews. - https://github.com/donnemartin/system-design-primer
- GitHub – system-design-primer: Learn how to design large-scale systems
- FLaNK Stack Weekly for 30 Oct 2023
-
Getting ACL surgery in two day and pretty nervous.
You'll be on opiod's probably the first 1-2 days, so sleeping should be fine. Everything will be allright, don't worry too much. Just use the time now to prepare for the time after, make sure you go through post-surgery-essentials thread. Once you are out of the OR you won't have the energy to think about those details, so make sure you take that prep serious.
-
Tool decision - What architecture would you choose and why?
Tooling isn’t architecture. Figure out what you need to handle both personas and volume/throughput and then lay out the capabilities you’ll need. As you lay out points of ingress, egress, consumption you can start to lay out sequences(think in persona and sequence diagrams to express interactions between services). Lastly, evaluate tools that offer some of these capabilities and weigh the trade-offs (there are always trade-offs: https://github.com/donnemartin/system-design-primer).
-
Is there an EU country which I might work there being an average non-EU developer
[1] https://github.com/donnemartin/system-design-primer [2] https://www.teamblind.com/post/My-Approach-to-System-Design-V4SJARdx
What are some alternatives?
leetcode-patterns - A pattern-based approach for learning technical interview questions
Grokking-the-Coding-Interview-Patterns - This course categorizes coding interview problems into a set of 16 patterns. Each pattern will be a complete tool - consisting of data structures, algorithms, and analysis techniques - to solve a specific category of problems. The goal is to develop an understanding of the underlying pattern, so that, we can apply that pattern to solve other problems. [UnavailableForLegalReasons - Repository access blocked]
system-design-interview - System design interview for IT companies
developer-roadmap - Interactive roadmaps, guides and other educational content to help developers grow in their careers.
machine-learning-interview - Machine Learning Interviews from FAANG, Snapchat, LinkedIn. I have offers from Snapchat, Coupang, Stitchfix etc. Blog: mlengineer.io.
interview - Everything you need to prepare for your technical interview
awesome-interview-questions - :octocat: A curated awesome list of lists of interview questions. Feel free to contribute! :mortar_board:
manim - Animation engine for explanatory math videos
RELATE - RELATE is an Environment for Learning And TEaching
awesome-system-design - A curated list of awesome System Design (A.K.A. Distributed Systems) resources.
devtron - Tool integration platform for Kubernetes
build-your-own-x - 🤓 Build your own (insert technology here) [Moved to: https://github.com/codecrafters-io/build-your-own-x]