The company large and very stratified. While this gives plenty of potential for upward mobility you will almost certainly have to put in above average time to move up as there are always a dozen people that have been there "forever" looking for that promotion you want. As a result often the person that most deserves the promotion is passed over for a more know (usually more tenured) person. Compensation is generally good, but they don't pay the appropriate premiums for specialties in software development (ex: JavaScript developers are getting a premium in the market, but they pay them the same as any other developer). Raises between promotions are negligible barely -- if even -- matching inflation.