In my experience, this mostly is because the “hiring bar” at big companies is frequently disassociated from actual day-to-day work. It typically looks like
1. memorizing some 50-200 or so domain-specific general patterns which problem solutions will tend to follow, so you can solve an arbitrary leetcode medium in under 20 minutes time — a skill that has almost nothing to do with the plumbing and product work most tech-workers engage in on a day to day basis, and
2. Speak at length and extemporaneously on arbitrary from-scratch system design problems — a skill which, while sometimes important, is a skill which most engineers that aren’t working at a startup won’t usually exercise more than once or twice a year, as the ratio of work on “systems already designed” to “systems needing new designs” will overwhelmingly skew towards pre-existence.
When your hiring process and day job are so thoroughly dissociated and unrelated to each other, it’s not a surprise current workers who aren’t actively studying for a job change couldn’t pass it.
1. memorizing some 50-200 or so domain-specific general patterns which problem solutions will tend to follow, so you can solve an arbitrary leetcode medium in under 20 minutes time — a skill that has almost nothing to do with the plumbing and product work most tech-workers engage in on a day to day basis, and
2. Speak at length and extemporaneously on arbitrary from-scratch system design problems — a skill which, while sometimes important, is a skill which most engineers that aren’t working at a startup won’t usually exercise more than once or twice a year, as the ratio of work on “systems already designed” to “systems needing new designs” will overwhelmingly skew towards pre-existence.
When your hiring process and day job are so thoroughly dissociated and unrelated to each other, it’s not a surprise current workers who aren’t actively studying for a job change couldn’t pass it.