its both. i hopped mostly because i got to see how other places build things, different stack, different ideas about how to run a project, and you just dont get that staying at one company even a good one. internal promo really depends where you are. small startup, sure its easy to get promoted but youre basically doing the same job with a fancier title. big co you can move around and actually learn stuff but then you have to deal with the politics