The role that most companies these days call “Senior Software Engineer” is actually an intermediate-level role (e.g., 5 years of experience). Staff is arguably where the actual senior-level roles start. This corresponds with the transition from being told what to do to being told to figure out what needs to be done and make it happen.