Pros
If you're lucky, you'll get the opportunity to work on a variety of technologies and get some great resume padding. If you like travel, you'll get as much opportunity as you can stand, both in-country and international. And, in most positions, you'll be able to work full-time from home. You'll work with a lot of people who have been at IBM forever and can give you guidance and mentoring. IBM is trying to reinvent itself and that creates some opportunities even as it also results in firings. IBM has great support for short term emergencies: if you or a family member is ill, your management will work with you to accommodate your needs. The company is very diverse and very inclusive and has been a long-time leader in championing equal treatment (sex and orientation, race, genetics, etc.).
Cons
At IBM, it's better to be lucky than good. The benefits are more expensive than many competitors: the only ones I found to be pricier were with contracting body shops. The 401k match is a joke. Performance appraisals have been done using stack ranking, although this year upper management has chosen to hide that from employees in favor of quarterly performance reviews. Performance reviews differ widely from one management structure to another, even inside the same division. You'll rarely get to meet with your teammates because of dispersed geography or people choosing to work at home. You'll be tethered to your phone and laptop all day (and sometimes all night) and IBM will own you body and soul if you let them. On any given day you may have an 11 PM meeting with a team in China followed by a 6 AM meeting with a team in Europe, and then discover that your North American teammates sent urgent emails at 2 AM. As a software engineer, you'll be working with a lot of dog food and you'll also find that your deadlines and features are driven by sales, even after the "agile" company transformation. You'll likely be working in a silo and communication between different groups is, at best, "hit or miss" with frequently ignored emails or instant messages if you don't work directly with the person. Don't assume you'll be at IBM until you retire: layoffs are an annual (or more frequent!) event.