Don't grind 500+ problems
After ~150 quality problems with deliberate review, you're getting diminishing returns. Spend the time on system design, mocks, and behavioral instead.
Quality > quantity by a lot
20 problems where you understand WHY > 100 where you copied a solution. Always do the "what did I learn" 1-line note after each problem.
Mock interviews are 80% of the gap
You can solve in your IDE in silence. Can you solve while talking, on a whiteboard / shared editor, with someone watching? That's the actual interview. Mock 10+ times before you interview for real.
System design is mandatory at every tier
Even Tier 3 asks something. Read "Designing Data-Intensive Applications" intro chapters. Watch 5 system design YouTube videos. You need pattern vocabulary, not deep expertise.
Behavioral kills more candidates than code
You might solve the algo and still lose. Write 6 STAR stories: a failure, a conflict, a leadership moment, a technical decision, a customer/user moment, a learning moment. Practice them spoken.