if you are actually doing software 12+ hours a day for a decade, I find it hard you wouldn't find great success.
unless you spend none of that time improving and just doing the same thing you learned in the first year, you will become an expert. Experts are well rewarded for their skills
My personal experience was that once I became an expert the company wouldn't promote me and then outsourced the team. It was obscure tech, so it was basically a dead end.
That seems to conflict with the preface that you are constantly learning and improving, which should include changing jobs when you have become stagnant. you can make absurd money working in finance with java programming.
People doing CRUD apps at Google makes lots of money and Google still hires everyone who pass their general tests afaik. Not everyone can work at Google, but if all software engineers were great we would have way more well run tech companies and therefore more companies paying similar to Google. So that argument doesn't really makes sense, software demand is still far from being met so all value any programmer can be delivered will be used up. Unlike for example cleaners, if every cleaner did 2x the work then we would just hire half as many cleaners.
the ability to work hard(defined as continuous focus, improvement, work ethic) with reasonable intelligence as a trait follows a Gaussian. I am not going to sugar coat the fact that that will naturally create a hierarchy of success
unless you spend none of that time improving and just doing the same thing you learned in the first year, you will become an expert. Experts are well rewarded for their skills