I am the founder of Design Gurus and the author of 'Grokking' courses on coding and system design interviews. I've interviewed at all the FAANG companies and have worked at a couple of them. I've conducted hundreds of coding, system design, and behavioral interviews at companies like Facebook, Microsoft, and Hulu.

I've helped thousands of people prepare for and successfully pass their technical interviews. Feel free to ask me any questions you might have about acing tech interviews.

Design Gurus blog: https://www.designgurus.io/blog

Courses: https://www.designgurus.io/courses

Proof: https://postimg.cc/0Kg5hq1Y

Comments: 44 • Responses: 10  • Date: 

just_dave20 karma

Outside of maybe the faang companies, how often have you seen any relevance between the algorithm problems on a technical interview and the actual day-to-day job being interviewed for?

And if it's not often, what would be a better method for companies to interview prospective developers?

arslan_ah35 karma

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!

raobjcovtn1 karma

What engineering blogs do you recommend for staging updated on system design?

HeyDudeImChill5 karma

[deleted]

arslan_ah7 karma

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.

Kukulkan92 karma

What are 3 most favourite video games, movies, and data structures/algorithms ?

arslan_ah2 karma

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.

Corbrum2 karma

Hi Arslan, thank you for this project, do you have any books in progress?

arslan_ah3 karma

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.

Shinnycharsiewpau2 karma

Your course helps 100s of job seeking engineers pretty much every day.

Is there any sort of sentiment or nuance in the guide that you would want your readers (the next generation of developers) to understand going into their next role with the principles which you've laid out?

arslan_ah5 karma

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.

EschersEnigma2 karma

As a Solution Architect with ~10 years of work experience, who wants to take their higher-level systems design/integration skills to a new level for hireability, what do you have to offer as part of your courses?

arslan_ah3 karma

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

noidwa2 karma

Can you recommend how can a engineer be updated with the latest trends in system design and architecture? What sources should he subscribe for getting latest news?

Secondly, you can see various success stories on the net, but how can I find some examples of failures?

arslan_ah2 karma

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

AlyaskaBabe1 karma

What inspired you to create the 'Grokking' courses for tech interviews?

arslan_ah1 karma