The Real Game

System design interviews (SDI) are unlike coding interviews where the main point is providing an answer or solving a problem..

System design for Staff Engineers, in interview and in real job, is more about discovering the real problems than providing a solution. More than 70% of the effort and the consequence are about finding the correct problems to solve! A analogue of problem discovery in SDI is finding the right algorithm in coding interviews: it dominates the result.

Finding the problem is nontrivial, it takes years of experience on tradeoffs, understanding of several technologies and design patterns, not only conceptually but also in practice. That explains my observation as an interviewer: Those who find the problems fluently always provide a solid solution; those who can’t find the problems struggled equally at solving them even if I gave up what are the real problems.

Usually, the way to achieve the required skill for the aforementioned problem discovery and solving is decades of work experience. Essentially, it’s an apprenticeship. However, I believe there is a shortcut for engineers with 5 YOE or above. Because most of our work hours are spent on meetings, logistics, communication, coding, and documentation. Only a small fraction is spent on real system design problems. So for most of us, 15 years of work experience is roughly several months of real meaty design practice. I may even overestimated the number of effective months here.

This program is to provide the essential system design apprenticeship in several month so that each participant‘s skill will over-qualify for the interviews. (I like buffer on critical missions, so over-qualification is our standard.)

Next
Next

The inadequacy of learning resources