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.
Contras
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.
Historically a very stable job, interesting work, great people
Contras
There can be a lack of mentorship for people early in their careers, although your experience will depend heavily on which group you are in. There are only 3 main levels of engineer with very limited group leader positions, making upward mobility limited.