Overall, the company is pretty great, but there are some cons. Everything I say here is based on my experience in R&D. I can't say anything about any of the other departments.
* The pay scale is a bit on the lower end. Not only are raises entirely based on merit (not sure if that's a positive or negative?), but they purposefully set the barrier for bonuses very high and each year I worked there, they increased it. My last two years, we only barely hit the threshold at the end of Q4. I'm not sure how much higher they can go before we loose them completely.
* Not all of the managers should necessarily be managers. They like to promote from within, which is great, but just because a person can code doesn't mean that they should manage. This is particularly true for the direct superiors.
* While there is a learning culture, there isn't a great structure for reviews and professional development. There's only one official review a year. Your manager might do more, but it's certainly not guaranteed (see previous point). This can make it difficult to not only discover your weak points so you can work on them, but also gauge your development
* Particularly in the data areas, there isn't yet a culture of rigorous code testing. Officially, new code needs to be reviewed before it can be pushed to the master branch, but more often than not, there isn't time. While there's testing for whether what you've written will break the build, it's not for things like integrations and data management. If you don't think to add your own failsafes, they won't exist. This is something that is actively trying to be improved upon, but historically, progress toward true data quality control has been very slow and difficult to adopt. As is it stood when I left, clients were as likely to find issues as the programmer.
* While the departments are growing, it seems like we're hiring to sustain almost as much as we're hiring for new positions. Most people have been in the company for less than a year and a good number seem to leave after a couple of years or so. This is slowly changing, but department retention feels very low, even from millennials' standards. It has slowed a bit since the start of the Great Resignation, but it still felt like there was someone leaving every month. It made it difficult to trust that someone has your back if you ever need help with legacy code or when you're out of office and something blows up. It has encouraged a culture of good documentation, but it's not the same as knowing that your team is stable even as it grows.