Pros
Prime real estate in San Francisco and free snacks make for a decent work environment. Employees are given paid time for volunteerism. The engineering division is still small, so you have your chance to make an impact. Small teams (arranged around scrum) allow everyone a chance to excel. Engineering management are fairly dedicated to listening to feedback and improving processes. Management is respectful towards employees, allowing them to explore their options. Engineers get as many huge monitors as they need to be productive =). The demands of "on-demand" software are high-quality. Customers of salesforce's software also expect fast innovation. As such, working here is demanding and should be a challenge and a chance to hone your development chops. Also, as it is with web software, it's cool to see your work instantly deployed to a large user base (compare this to nature of patches and upgrades in the on-premise software world).
Cons
Respect is due to the visionaries who pioneered the "Software as a Service" model through this company. However, there's is a considerable contingent in the product organization that relishes politics and competition. Superiority complexes and inflated egos are commonplace. As a new employee here, expect to be the recipient of a fair measure of paranoia and condescension. Salesforce has a reputation for being a PR-hungry company. As such, the company tends to be somewhat fickle in its direction, always going for the big bang and you never know how important your projects are. On the flip-side, if you're the right person in the right place at the right time you might find yourself in the middle of some exciting opportunities. The flip-side of being in a small engineering division (mentioned above) is that the work never stops. Work/life balance isn't great.