Pros
There is a huge team feeling, and a personal feeling of growth. You get to work deeply on amazing enterprise applications with other true experts/geeks who are humble and egoless. You get honest feedback no matter what your tenure. In the true spirit of making your customers successful, there is a lot of cross-checking work which breeds cohesiveness across the company. You can basically set work schedules for yourself for consistency, productivity, and long term success. It's a company to be proud to work for!
Cons
Setting your own schedule, working remotely etc.. It's a transition that needs a solid plan, something I knew I'd need but it was not easy. You are measured on what actually matters: your work product, communication, ability to learn and apply. I see this as a pro, but it can be seen as a con if you would rather work somewhere in person in certain environments where you can blend in or stand out with social maneuvering.