Need a little bit more to be world class
Pros
Firm level: Top benefits, good pay. The company takes care of its employee. Good health insurance plan that cover whole family without a penny from you. On site doctor, large pantry, free snacks/breakfast. The most missed is the corporate event, which includes summer picnic and big apple circuits. (My kid is already complaining that we cannot go there due to the fact I left the job.) R&D level: Smart coworkers. Two 27 inchs monitor (This is important). Some of the infrastructure team's work is highly respected and appreciated. Engineers are allowed (or somewhat encouraged) to move internally to build a career. (Comparing before and after this policy, I felt managers are less likely to mistreat their reports)
Cons
Firm level: Terrible "stupid" hiring policy (this is not confidential anymore, search on quora): the HR will throw out the resume without looking if the candidate was a former Bloomberg employee, or even worse, that this person had declined an offer from Bloomberg before. (How are you going to compete in such a competitive market for tech talent?) Performance review is stack ranking based and the managers have the full say. As a result, employees are discouraged to share knowledge, but fight politics internally to be close to the managers. Individual contributors are less likely to disagree with the managers/TLs' idea. Wrong person get promoted/demoted time to time, not because of performance, but as a result of political matter. R&D level Poor software practice in the R&D, where almost non-existence of the automated software testing (not even at the unit-test level). The company encourage employees to be innovative firm-wide, however in practice, engineers are discouraged (indirectly) to innovate due to fear of breaking things. I personally knew at least 2 engineers were fired due to the production bugs they created. From my knowledge, the most senior managers in R&D are technical with some of the good visions. However, many of the mid, mid-senior level managers, are not technical at all. These people are usually the decision makers and I saw many missteps in the decision making progress during my 5 years there. Lack of developer productivity tools. Most engineers are still on vim/emacs and at the time I left, there's not a fully integrated SDK available. Eclipse is used, as only an editor.