Pros
1 Comfortable office and bonuses (like kitchen, massage, language lessons inside company, little library, shower) 2 absence of burocracy stuff 3 agile work schedule 4 relatively relaxed atmosphere 5 International teams and work trips to USA (not for all projects)
Cons
1 Management (you can do something for a half of year, and then it will be easily dropped, and even PMs do not know how product will be changed in few month) Senior management tells a lot of good principles, but processes inside company not even close to that. Managers told a lot about people, but not intrested to save them from leaving. And then hires new people to higher position. 2 compensation value (it is normal from start, but not raises from year to year, as your position) 3 slow progress in career - you can not be promoted to raise until at least 3 years, but new employees will be hired on higher position, even if they are similar to you at skills and expierence. 4 International team and a lot of legacy - you can be forced to work with low-skilled people due to only they can tell about how legacy code works (and quality of this code not good too) 5 Management not open to dialogue - they carefully listen to you, may agree, but will not change decisions and process after that. Oh, but sure you can be promoted if you in good relationships with your supervisor, and one of a necessary conditions for that - never argue with him.