It takes effort to become better than you are at your current level. To get past junior, that should happen by osmosis. For some people, talent alone will take them to senior. For others, they will need to put in the time to learn how do work more efficiently.
Consider that it will take a senior developer 20 hours to do a job a junior might take 80 and the quality will be better for the senior. In turn, the senior may only code 20 hours a week and spend the other 20 in something that might take a staff engineer 5 hours.
The problem is that skill acquisition takes time.