Pros
The benefits and pay are pretty competitive. I have worked on some teams where people were getting paid more than me simply because they were there longer - although their skills and output were not up to par. It's awesome to be able to work anywhere.
Cons
Using a VM for development slows down productivity. Many teams, including mine, focus on keeping legacy systems afloat instead of developing new solutions. This makes development take longer and results in a poor development experience. With early retirement, there is no support for existing code that was built for the last 20 years. Hard to maintain legacy systems without context. Scrum masters lack purpose and skills to be necessary and often get in the way of productivity. Meetings outweigh time for development, making it hard to get anything done. Business requirements change frequently without context resulting in less productivity.