Pros
1.) They will always pay you on time, and exactly what you are asking
2.) They have nice benefits
3.) If you come into the office, they will pamper you with frequent lunches out
4.) You are more or less guaranteed a decent work/life balance. I never worked more than 40 hours, and often finished early on Fridays
5.) If you are the more social type, you'll enjoy ping-pong breaks, etc.
Cons
1.) When I left, it seemed like they were struggling with their identity as an organization. Some of their staff worked remotely, but if you lived in the same city, you were expected to come into the office. This felt oddly contradictory to me. It would have been nice if those expectations were made clear upfront in the hiring process
2.) It's a noisy environment, which can be challenging as a software engineer. It's difficult to work there without interruptions. You can frequently lose your focus.
3.) The higher ups could do a better job of bringing everyone into planning conversations earlier on in the process. We were frequently given half-baked designs we were expected to execute, which is pretty normal in software development, but kind of exaggerated in their environment. We had to make a lot of assumptions about how something is supposed to work without having clear direction from the start.
4.) It's not going to be your type of environment if you don't fit neatly into a very narrow role. Software developers aren't expected to have an understanding nor care for UX design. That can be good and bad. If you want to just focus on the code and do what you are told (aside from the assumptions you have to make because of incomplete specs), you'll be fine. If you see yourself operating at a higher level, it can feel rather stifling.