The old IBM culture is totally not there. In the US, be ready for you job to be outsourced any time
Pros
There is some good technology for a software engineer. However that technology is getting dated very fast. It is a good company to be in if you have some manager or lead associated to your job title. Managers and architects and leads do reap benefits of raises and bonuses. Financially company always makes profit.
Cons
No job security for US employees. Pay raise and bonus for technical engineers are almost non existent. If you are technical person be prepared to be abused especially if you are working in the US. Long hours with little or no recognition for work is standard practice. Especially in the software business unit. Technical growth opportunities just do not exist. Every year middle and upper management is looking to see how much of the work done in their groups/orgs in the US can be shipped and outsourced to India or China. The companies financial profits result in bonuses and raises only at the top.