Pros
Getting to work with people who both know what they're doing and are on top of their game, as well as being fundamentally happy to help when they're reached out to, is a great experience. The scale is, as expected, massive. Working on products that will have an impact on millions of users is both challenging and rewarding.
Cons
With great scale comes great internal tooling and the stress of being responsible for maintaining production environments at such scale. You can find yourself being pigeonholed into a niche involving more internal systems, which break quite often, while gaining less experience that is more broadly relevant. For example, I coded quite a bit of front-end; however, I was using infrastructure components designed and implemented by other teams instead of the actual underlying framework (in my case, a combination of Angular and React).