Pros
I have been here for a while and been challenged the entire time. There is always work to do and new problems to solve. Using scrum we are always refining tickets as a group and reflecting on our last sprints. You really feel like your voice is heard, sometimes I am given a task and disagree with how the ticket says to implement it, I can easily go to my supervisor or team members and talk it out and I feel most of the time if my solution is better we go with it or we make a hybrid approach. This is great because everyone on the team is willing to help and make the product better. I also feel like we are encouraged to try new things and learn of bleeding edge tech that we can use in the software. Lastly I think the product is well designed and looks great, you can really see with thousands of integration, unit, and automated tests that they care about the product and want it to succeed.
Cons
Office space is a bit of a drawback, sometimes I would want a little more room between me and the other developer. But this kinda works in favor of teamwork, I feel since we are so close that it is a lot easier to ask someone for help. Another negative is that it is a bit of a commute.