Pros
Opportunity to work with and learn from brilliant computer scientists, world class people. Projects are cutting edge and always interesting, and change just often enough to keep things interesting. Opportunity to do true research, publish, and present at conferences.Very good job security, management in general very approachable. Interesting work to say the least, with a chance to really change the world with technology. Flexible hours in general. More mature work force than you'll typically find in software - lots of older workers and workers with families, people who have been there 20+ years.
Cons
Government contractor, and all the cons that come with it: close tracking of hours, always running after government contracts. Proposal work can be grueling 24/7 grinds. Health of the lab very dependent on health of government contracting world and the whims of program managers. Sometimes promises the moon to win a proposal and then engineers have to pull all nighters to try to deliver. Facilities are dated; no free food and very few extra "perks". Coffee is free but not very good. After achieving "senior" title, very few opportunities for advancement unless you want to give up technical work and become management (and even then there are few positions open).