Pros
You get to work on interesting projects with a diverse set of technologies to choose from. There is a constant push to improve the workplace environment, and anyone is welcome to contribute to that effort.
Cons
Sometimes you are expected to work overtime for entire months, due to stakeholder arbitrarily set deadlines. Minor perks that make a big difference are sometimes denied to save a couple thousand dollars, for example, the company was resistant to increase the RAM memory of work laptops (despite conputers crashing due to out of memory), or to provide snacks for employees. Eventually they provided these perks, but it should've not taken almost a year for them to happen. Another example of this, is the company's reluctance to provide IntelliJ IDEA licenses for all software developers :s But no worries! We have Microsoft Office licenses!