The pattern in this story is not a verdict on your ability. It is a reflection of a hiring process that has become fundamentally misaligned with the work it claims to assess. Eight companies, one onsite, zero offers. That is not a sample size that defines your ceiling. It is a sample size that defines the chaos of the current data science interview circuit. The problem is not that you are failing to improve. The problem is that the target keeps moving because each company has decided that their interview should be a unique gauntlet rather than a reliable measure of whether you can do the job.
You are not alone in mistaking inconsistent feedback for personal inadequacy. When every technical round feels like a different exam with no shared syllabus, the natural conclusion is that you are the variable that is not measuring up. But the material here shows something else: you are taking notes, adjusting, and still facing a process that rewards familiarity with its own specific rituals. Big tech wants one thing, hedge funds want another, and startups are often just guessing. The fact that you cannot build momentum is not a character flaw. It is the predictable outcome of a system that has no standard for what a senior data scientist must demonstrate.
What this means for you is practical, not existential. Stop treating each rejection as a signal about your worth and start treating it as data about the market. You already know the interviews differ. So narrow the target. Pick the industry where the problems you solve are the ones you actually want to keep solving. If you are aiming at senior ML roles in a high cost of living area, the bar is not about being good enough in the abstract. It is about being good enough for a specific type of company. That is a different preparation. It means going deeper on fewer topics, not broader on many. It means accepting that a hedge fund and a startup are not looking for the same person, even if the job title is identical.
The real takeaway is that your current role is not a ceiling because your current role is not a measure of your potential. It is a baseline. The gap between where you are and where you want to be is not a gap in intelligence or effort. It is a gap in alignment between what you are being asked to prove and what the role actually requires. So stop trying to be everything to every interviewer. Choose the arena where your strengths are visible, and let the others pass. The offer you almost got is proof that you are close. The rejections are proof that you are still exploring. That is not a ceiling. That is a map.