The best way to get a Promo is to get another job.
My theory is that in the last couple of years, the market is booming however for most people, salaries haven’t kept up with it. At Microsoft my rate of raise was lower than inflation (so in essence I was getting paid less every year). Jumping ship was a huge jump. I interviewed at a bunch of places and got an idea what the market would pay for me. I negotiated slightly above and been happy.
I've been saying this for a long time. It's especially true in technology and engineering.
I think the reason why the best way to get a promotion and a raise is to get another job is because once you've been working for a company for a few years your salary and benefits are "pinned" or anchored by HR, and you're only going to be able to advance within their acceptable terms, rates, and limits. There's also a lot more negotiation overhead—you have to spend a lot of effort in making your case for a promotion. Whereas with a new job you start fresh and you can negotiate on fundamental terms.
My best way to get a raise used to be to quit my contract. Got 50% more for staying. Now I get 33% raises (without asking/negotiation) to prevent me from qutting :-P That said, I started very low, so 50% was not much.
My theory is that in the last couple of years, the market is booming however for most people, salaries haven’t kept up with it. At Microsoft my rate of raise was lower than inflation (so in essence I was getting paid less every year). Jumping ship was a huge jump. I interviewed at a bunch of places and got an idea what the market would pay for me. I negotiated slightly above and been happy.