Note: the 300k to 600k jump can happen shockingly easy (without promo) if RSU grants appreciate well and refreshers are generous. Doing it the “hard way” (assuming RSUs stay flat) is hard. You need to design, convince others to build, and help build truly impactful systems AND make sure you get a big chunk of the credit.
I know people making 300k that are writing hundreds of lines of high-quality code in important systems every single day for years in a row and also doing code reviews, system design, etc. Very productive engineers doing traditional tasks.
I also know people at that level who spend their days watching YouTube videos and hoping nobody notices. On many teams, nobody ever does. It's easier to hire one extra person at these big companies than to fire one.
All these two people have in common is that they can pass an interview and they know how to write an email.
(Aside: the latter category makes me pretty angry because I know so many good programmers in India, Eastern Europe, etc who could change their whole families' lives with that kind of money but can't get it from a lazy American)