people ask this constantly and the honest answer is: wildly variable and mostly determined by things outside your control. but here's a more useful breakdown.
the structural constraint: promo cycles
most big tech companies run one or two formal promotion cycles per year. the spring cycle (H1) usually closes in Feb-March with announcements in April. fall cycle (H2) closes September-October with announcements in November. if you miss the packet submission deadline by even a week you wait 6 months.
that means the minimum time from 'I want to get promoted' to 'I got promoted' is about 6 months if you're already demonstrating the bar when you start. in practice most people need 1-3 cycles after the first time they're considered, which puts it at 12-18 months.
from senior to staff specifically
this is where the variance explodes. junior to mid and mid to senior tend to be more formulaic: time-in-level plus project completion plus manager support. senior to staff is when the judgment bar hits and the scope requirement kicks in.
my personal experience: I was a senior DE for 4.5 years before getting staff. first two cycles: 'not enough cross-team impact.' third cycle: different manager, same work level, different sponsorship, same result. fourth cycle: I changed teams, led a platform migration that touched 6 product teams, got promoted 3 months later.
the platform migration wasn't harder than my previous work. it was more visible and had more stakeholders. that's what changed.
the timeline math
year 1: ramp, prove yourself, establish baseline. unlikely to be considered. year 2: if you're delivering consistently, your name might go in but expect a 'not this cycle.' year 3+: if you have the right scope and sponsorship, this is when it lands.
if you're past year 4 at senior level and haven't been promoted, either the scope isn't there or something is wrong with your manager relationship. both are fixable but you need to diagnose which.