Pros
CRA is a great place to work. People are generally friendly and there are many experts in their respective fields, from machine learning to human-computer interaction and robotics. Much of the work being done here is cutting edge research, covering a broad range of topics, so no matter what your interest is, you can likely find people working on it. There is a lot of room for growth and taking on leadership roles and responsibilities, but you do need to be willing to push for it and go after it. The company is employee owned, so there is much more of a sense of the company caring about their employees. Salary is fair, if maybe a little low (at least for Software Engineers), but the benefits are extremely good and make up for the difference. Very flexible and family-friendly. Management tends to be very open about the state and direction of the company, much more so than I have seen other places.
Cons
CRA primarily focuses on research and development projects, so if you are a Software Engineer expecting to work on the same project for years and do typical product support work, you won't find that here. You will typically be on multiple projects (2-3) and some will only last for 6-12 months. Some people love that environment, but some don't. You will typically end up working with a core group of people on a particular area of research problems. It can be hard sometimes to branch out to other groups or areas of interest, but this is something the company has been working on.