Look into getting a PhD or at least an MS in the science you're interested in. In my (pretty limited, admittedly) experience, the developers who do the heavy lifting on scientific codes are PhDs. At the same time, very few (almost 0) freshly minted science or engineering PhDs have any experience developing software in a production environment, so as long as you aren't terrible at interviewing, I think you'd be a shoe-in at a national lab or a company that does this kind of work after you finish.
FYI, because you probably don't know this, getting a PhD in a hard science or engineering is usually free (to you). In fact, they even pay you to do it. The stipend will be a half or a third or a quarter of what you're making now, but it's enough to live on. The challenge of course is that with little or no educational background in geology or whatever, it's going to be harder, though not impossible, to get into a good PhD program. At the very least, they will expect you to take a few undergraduate courses in the beginning to give you the baseline knowledge that most of your classmates will arrive with. And I would urge you to shoot for a top 10 or 20 department. On the BS level, where you got your degree doesn't matter much (again, in my experience). Where you get your PhD matters a lot more. Of all places, academia should be a meritocracy, but in reality, people with PhDs can be really petty about these things, and your lineage matters. At the very least, many places that would hire someone like you only directly recruit at a limited number of schools, and those schools tend to be the best ones.
Another thing you might consider to help you get around this lack of science background is applying to an applied math program that has a scientific emphasis. I had a friend at The University of Texas who was in the computational science and applied math program there, and his research was about computational fluid dynamics. Maybe dig around on their website, or the websites of similar programs, to see if any of the faculty have research collaborations with geologists.
Who approves the pay increases and golden parachutes?
Oh yes the CEOs.
No, they don't. From the link:
If bosses set the salaries of their workers, who decides what the bosses earn? In a modern corporation, the task of setting the CEO's pay falls to the board of directors, typically a subgroup of board members on its compensation committee.
What they can get away is what you're worth. If your services were worth more, someone else would steal you away with better compensation.
If executive pay is rising across the board (that is, every company is paying more), all that means is that the level of compensation required to keep an executive at a particular company is rising. You might argue that executive pay is greater than executive productivity, but that raises an obvious question: Why are they being paid that much? Are companies all stupid? It seems like these companies would realize at some point that they could offer lower pay and achieve the same results.