Pros
Good overall conditions. Not the highest salary but you do get a lot of perks, like bonuses, insurance, food, work from home, parties, etc. Good overall environment in your day to day work. When you're starting they do a good job on passing the idea that you're in a different company with good values, good work environment and a lot of respect from people, etc. You get to know a lot of great people. A good starting point to learn a lot on the software development process. The CEO seems very commited to make the company a great place for employees, knowing that that will be reflected on the company's results.
Cons
This is a company for "yes men". If someone asks if you can do something in X amount of time always say you can, even if you know it can't be done. When you miss the deadline you can always say that something not planned came up. A few of the people you get to know are not that good, and I'm going so far as to say they are psychopaths, using the clinical term. Had a coworker who frequently distorted words or outright lied to my lead about my performance. He also had a really bad attitude when working in a team, yelling in the most simple situations. Since that coworker and my lead were college friends his behaviour was being masked by my lead. Every six months we get a performance review were we give/get feedback to/from our coworkers. I was ready to give feedback about his yelling and overall behaviour but, just before the feedbacks, I had a meeting with my lead were he told me that my evaluation was going to be two grades below my coworker's grade. That was his way of saying, if you give negative feedback about him you're only harming yourself. Not surprisingly my coworker had the highest grade on the performance review. Other feedbacks mention this and the previous example is just to reinforce it, performance reviews are friendship based and so are promotions. This completely undermines the company's aspirations tho get good talent. The Personal Development Plan is a waste of time.