> At 95% of companies, there is zero career development and advancement once you become a "Senior Software Engineer". Fix that and you'll see more engineers stay put (where they're likely happier and more productive).
In many companies I see more undermanagement than overmanagement, so starving out the management track doesn't sound like a great strategy. And if a company is going to have better career development and advancement, it's managers who will make that happen. The pithy answer is "why don't you become a manager so you can fix that?" – and maybe you don't want to and that's fine, but you should hope that some other enlightened person chooses differently.
Re: advancement: to have greater impact than a Senior Software Engineer you need to do more than hack or stay late to fix bugs. What we define as "management" might not be the best way to do that, but it's got to be something. And at a certain point impact based on individual skill is hard to scale. I don't think we have a very good model for what it means to be more than that, so there's something precarious about the upper levels of the technical track. I recall seeing an article describing the developer equivalent of "The Wolf" (the character from Pulp Fiction), and have encountered people in that position; it's kind of like a wildcat manager role, diving in to fix problems that are typically both technical and organizational. There might be other models of what it means to go beyond Senior, but I think they aren't as well understood as they should be. And a lot of them will look somewhat like management because a large component is doing work that makes other people more productive.