It can vary a lot from group to group, but in general, wonderful place with wonderful people and lots of interesting work going on. Excellent benefits and lots of flexibility to explore different projects.
Cons
Little opportunity for advancement in terms of rank and compensation once you reach technical staff. Additionally (again varies from group to group) expectations of what a staff member does can be unclear and there can be a light sink-or-swim nature to the work, again depending on the group you're in.
Worked with some of the smartest people I’ve ever known.
Great opportunities to learn from your coworkers and an atmosphere that encourages learning, including a well-run technical education program.
Fabulous support staff and technicians that can get seemingly impossible things done quickly.
Great resources and lab spaces (if a bit dated).
The nature of the work encourages good work/life balance.
Fantastic benefits (though the pay is low).
Cons
No/limited opportunities for advancement makes this a hard place to work mid-career.
Good engineers are promoted to be mediocre managers.
Every program is under-funded, under-staffed, and over schedule.
Bad managers are shuffled around but rarely fired.