I have been an engineer who has been promoted, and also a manager for many years now who has had the very good fortune of promoting many people. From Junior Software Engineers all the way to Principal Engineers.
The more senior the promotion the more that what you need to be demonstrating stays relatively invariable. It’s the sub context which varies.
There are two areas you need to be focusing on to get a promotion to Staff Software Engineer and beyond:
Impact.
Visibility.
Of course you need to be doing many things, and many things well. Those two are the big ones. You will struggle to get promoted to those senior engineering levels without impact and visibility.
It’s not enough to be a competent Senior for years, expecting someone to promote you due to tenure, without displaying the aptitude of a Staff engineer.
Impact
Here are some questions to consider: