Highest Rated Comments

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!

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.

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.

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.