Pros
1. Will learn some good values like customer focus. 2. Will work on some interesting problem spaces. 3. Aggressive goals help you focus on getting things done. 4. Team switching is quite easy so if you are unhappy with one team, can easily move to another.
Cons
1. Work can be too boring. Even on teams that are working on cutting edge things. Job postings heavily inflate the challenge faced by teams. 2. Technical debt, a lot of time will be spent cleaning up after bad/rushed decisions made before. 3. No real culture. In my team at least, we barely had any team building. People often ate their lunches at their desk. 4. Manager quality is a high variance and there are plenty of bad managers. 5. Virtually no perks and very high density seating. 6. Compensation is lower when compared to other similar companies. It has been higher in the last few years due to high growth, but now that the dust has settled, the compensation is not too good. 7. Oncall is the worst. Imagine being woken up at 3:00 AM in the morning to reboot a server. Automation isn't prioritized at all and often it takes months to fix/automate issues.