Heavily against any open source usage / involvement by employees
Serious bureaucracy, sometimes it takes moving a mountain to get the smallest things done
Massive, legacy code bases written YEARS before anyone though unit testing was a good idea, which means massive amounts of complex code with pretty much 0 test coverage, ohh and you get to tchange it all, make sure you don't regress anything or introduce any bugs!
Convoluted build systems, source control management
Little cross team collaboration, to the extent you have to request permission to get access to the Office PDBs (and they likely won't give you permission)
Lots of arrogant people, some won't even bother responding to e-mails or will be very rude/dismissive as if it is a waste of their time. These people are usually also the creators of all the terrible mess alluded to above, so good luck convincing any of them it needs to change (since 'it' is what got them promoted at one time)
Test frameworks are a horrible mess, convoluted, unreliable, arcane
Branching / code motion (FI/RI) is TERRIBLE, changes take FOREVER to propagate and when they do they inevitably leave your branch on the floor for a number of days after wards
Lots of PMs that seemingly spend their day reporting on your work (and mostly taking credit for the things that go well) to management, also playing bug games to hide bugs around senior management review time and sending out update e-mails with indecipherable tube charts and ridiculous time-lines that have no basis in reality and pretty much show the opposite of what every dev says to them every day in terms of where the project is, what risks are present, etc...