Pros
I've been able to pursue the work that seemed most important to me during my tenure at Red Hat, even to the extent that I was part of starting a new build service and then, later, starting a new team to help with it. Red Hat offers the chance to solve problems in the ways that seem best to our team, and has a huge well of talent and experience to draw on for advice. Red Hat also doesn't (officially) demand that you spend a lot of time doing off-hours work, though the needs of communication in globally distributed teams often makes this much more ambiguous.
Cons
Infrastructure and team efficiency support is not always the best. You can pursue the solutions you think best, but the downside is that you might have to support it yourself. Our organization has been a bit reluctant to adopt some more modern practices, such as SRE and service observability. You are in charge of your own education and training, in order to implement solutions to your problems. Although Red Hat does offer a wide array of training courses, finding time to take them can be quite challenging. Finally, global distribution of engineering teams has taken a large toll with some teams, in terms of finding a sustainable work-life balance (you simply cannot factor out timezones).