Pros
Pretty much everyone you work with is a nice person, helpful, easy to work with. No bad attitudes or difficult people, and many very smart people. Very good work-life balance, engineers often work from home and it's easy to leave early/arrive late for family issues, etc. The place pretty much clears out by 5:15pm and there aren't many people working weekends.
Cons
Google for "Minnesota nice". No one will ever publicly disagree with you, and especially not with management - a very "yes-man" culture. No one speaks their mind in public. I was in one meeting with the VP of engineering, who told two managers to do such-and-such, and they fell over themselves agreeing with his decision and saying they'd get right on it. Then 5 minutes later during a break, one of the same managers leans over to me and asks "do you have any idea what the h*** he was talking about? He didn't make any sense at all." And then the meetings -- nothing ever gets done. Meeting after meeting after meeting, and no one makes a decision or picks a course of action; it's always consensus-building, and if you can't come to a group consensus then you're really screwed because the meetings then go on forever. I can't tell you the times I've been at HQ and walked the halls and manager after manager is in meetings for almost the entire 8-hour day. It's amazing any real work gets done. And all the real decisions are made by management, with little input from ordinary workers. They are so stuck in their culture and they just don't realize it -- they go around thinking they have such a great culture and great processes and they have (at least as far as I could tell) no idea how truly broken their culture is. Perhaps it's a midwest thing, and I'm expecting a Silicon-Valley-style high tech culture.