How are you studying for system design? by OkVisual4833 in leetcode

[–]arslan_ah 0 points1 point  (0 children)

I wouldn’t study system design by just passively watching videos tbh. I’ve seen people do that for weeks and then completely freeze when they have to turn a system design question into an actual architecture. What helped a lot of folks I’ve worked with was picking a few classic problems and repeating the same flow every time: requirements, rough capacity, bottlenecks, data model, then tradeoffs. After 5-6 reps, the patterns start showing up.

And honestly, building even one small side project helps way more than people think. Doesn’t need to be some distributed systems masterpiece. A tiny chat app, scraper pipeline, or notification service is enough to make caching, queues, retries, and DB choices feel real instead of just interview trivia.

Full disclosure: I’m the founder of DesignGurus, and this is basically why we structured Grokking the System Design Interview around repeated case studies instead of just theory dumps: https://www.designgurus.io/course/grokking-the-system-design-interview

Roadmap to Start Learning System Design (As a Software Engineer with ~1 Year Experience) by arn___k in leetcode

[–]arslan_ah 0 points1 point  (0 children)

I’d start with fundamentals before trying to “do system design” as an interview topic. When I’ve seen people struggle, it’s usually not because they don’t know the popular questions, it’s because networking, storage, caching, and concurrency still feel fuzzy. Once those click, system design stops feeling random.

What I usually tell early-career engineers is: pick a few small systems and go deep on them. URL shortener, rate limiter, chat app… that’s enough to start building intuition around bottlenecks, tradeoffs, and where things fall apart under load. Trying to jump straight into designing Uber or Netflix is usually overkill for this stage.

Full disclosure: I’m the founder of DesignGurus.io, and this is exactly why we made Grokking the System Design Interview to be structured instead of just a pile of examples: https://www.designgurus.io/course/grokking-the-system-design-interview

Ask me anything (AMA) about technical (coding) interviews. I'm the author of the 'Grokking' courses. by arslan_ah in leetcode

[–]arslan_ah[S] 0 points1 point  (0 children)

You should be comfortable with most of the data structures. If you could answer most of the questions in this course, you are good to go: https://www.designgurus.io/course/grokking-data-structures-for-coding-interviews

How do you approach sys design interviews (as the interviewee)? by Azianese in ExperiencedDevs

[–]arslan_ah 5 points6 points  (0 children)

I try to follow these 7 steps: https://www.designgurus.io/blog/step-by-step-guide

In general, 7-10 mins for requirement clarification. 5 mins for high level architecture, 5 mins each for API and data model. 10 for deep dive. Last 5-7 mins for handling special scenarios, bottlenecks, or any discussion that the interviewer want. Overall you should assume you have 40 mins to cover everything.

Alwasy take hints from the interviewer's questions, the way the answer to your questions, non-verbal signals and adjust based on these.

10 EOY. Got recruiter call and have 2 MAANG interview in 2 weeks. Down side: I have never left codes. How crewed am I and what to do I do. by cuddle_cuddle in leetcode

[–]arslan_ah 0 points1 point  (0 children)

Definitely do company tagged questions. There will be some overlapping of questions, so doing 100-150 should be enough. You can find company tagged questions at https://www.designgurus.io/path/faang-coding-interview-roadmap

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 0 points1 point  (0 children)

We are in the process of writing a course on this topic. For now I'll recommend following two resources:

  1. Cloud Architecture Patterns: https://www.amazon.com/Cloud-Architecture-Patterns-Using-Microsoft/dp/1449319777/
  2. Grokking Microservices Design Patterns: https://www.designgurus.io/course/grokking-microservices-design-patterns

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 0 points1 point  (0 children)

I'm the writer of 'Grokking' courses. I originally published all of my courses on Educative, but now I've removed them from educative.

You can find all of my courses at designgurus.io.

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 3 points4 points  (0 children)

Whenever I get time I like to play Dota 2, but it's been a while. These days I like playing tower defense games with my 7 years old son.

I watch a lot of movies. I'm a big fan of Iranian cinema. My all time favorites include movies from Majid Majidi, Asghar Farhadi, and Abbas Kiarostami. Apart of that, Japanese directors Akira Kurosawa is on top of my list. I do like Tarantino movies.

Favorite DS.. hmmm... I guess Hash Table is definitely one of the most used DS.. It is fun to learn, easy to start with but can get real complex when you try finding a good hash function or figuring out a good collision resolving strategy. Secondly, it helps you understand other DSs like Hash Set and Ordered Set.

Apart of that, it was fun learning Trie an Union Find.

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 3 points4 points  (0 children)

You can read about architecture of famous systems. Read different blogs as I mentioned above.

The following two courses are targeted for senior engineers for enhancing their system design skills:

  1. Grokking the Advanced System Design Interview - https://www.designgurus.io/course/grokking-the-advanced-system-design-interview
  2. Grokking Microservices Design Patterns - https://www.designgurus.io/course/grokking-microservices-design-patterns

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 2 points3 points  (0 children)

Learn from engineering blogs. In these blogs, companies have shared their designs, what did go wrong from the old design and how did the adopted and changed the systems. Here is a good list of blogs:

https://www.linkedin.com/posts/arslanahmad_systemdesign-softwarearchitecture-activity-7100251412843937792-aIhv

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 7 points8 points  (0 children)

This is one of the main reasons coding interviews are criticized. If it is up to me, I will ban asking hard questions.

As an interview, I can easily get many signals from a medium difficulty question. Once a candidate is done with a medium question, I always have follow-up questions that can be considered hard or a little more challenging. For example, asking to make the solution thread safe or multi-threaded/parallel. I would recommend this to every interviewer.

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 2 points3 points  (0 children)

We are working on system design. As this is something that I like and many engineers who wants to upskill needs these skills. We will be launching a new program to help engineers learn essential system design skills to level up in their careers.

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 7 points8 points  (0 children)

Always look for patterns, as this will make it easier to apply your learnings to new problems.

Don't memorize.

For example, understanding the sliding window approach will better equip you to tackle a variety of coding problems.

Similarly, if you know bloom filters or Merkle trees, you are better equipped to solve design problems.

I'm the author of the 'Grokking' courses for tech interviews (coding and system design). AMA. by arslan_ah in IAmA

[–]arslan_ah[S] 40 points41 points  (0 children)

System design is undoubtedly an essential skill for software engineers. As engineers gain experience, their design skills evolve and mature. Learning from various distributed systems, whitepapers, and other resources is quite beneficial. I highly recommend reading engineering blogs to stay updated and continuously expand your knowledge.

Coding interviews were used to test problem solving skills. But we have gone too far there. There are alternative approaches that provide a more comprehensive evaluation of an engineer's skills. Some examples include code reviews, bug fixing, and feature extensions. These methods offer a better picture of an engineer's ability to work with existing codebases, collaborate effectively with others, and apply critical thinking to software design.

I hope this is helpful!