Pros
1) Impactful product that millions of people used. 2) Unique tech stack is a great learning opportunity. 3) Swag like mad. 4) Due to double standards, I learned to be near-perfect in my execution of almost everything as an engineer in order to keep my job.
Cons
1) Yes man culture. I found that every time I disagreed with my leadership, I was shut down. If I turned out to be right, I was in one case outright punished. I learned to keep my disagreement to myself, and quietly solve the problem the right way instead of telling my leadership what was happening. 2) Absurd levels of favoritism. I was punished for very small, low-impact mistakes (which as an engineer are inevitable). Meanwhile, I saw other people make much larger, customer-facing, and more impactful mistakes and get promoted. 3) Doublespeak from management. Always trying to give the appearance of an open forum for discussion, but on the rare occasion that it was used, it was largely a bully pulpit. Rule by fear. 4) Low autonomy and highly centralized decision-making. I've never been somewhere where I had so little ability to decide how things are done. Code reviews were absurdly nitpicky, to the point where my PRs were being held up on nuanced choices about variable names. All architecture decisions were made by 1-2 people, and they frequently weren't available before work started. This resulted in a lot of wasted effort, as they would come in and review things after the fact, tell you your (working) approach was wrong, and force you to rebuild everything. 5) Little respect for outside knowledge or expertise. I could get things done that nobody else on my team had any idea how to even approach, and I was treated like that was par for the course. Meanwhile, the old hands who had been there forever got praised up and down for trivial tasks.