Avantages
Very good pay compared to the industry. Developers are responsible from design to QA, deployment and maintenance of software. This allows great efficiency and ensures little overhead of dealing with multiple groups on one project. Developers are very good at what they do, and are helpful in general. There are internal tech talks and learning sessions almost every week to keep other developers abreast of what's happening at different units. Most managers came from a technical background; therefore they understand and communicate with developers well. There is little office politics I can see of. Internal transfers are encouraged. This is great because there are always exciting new projects going on within the company.
Inconvénients
Pager duty. Depending on the size of the team, it's usually one week out of six-eight. The rather high turnover rate can be annoying when you need to understand the code written before any current devs joined. The benefits are on the slim side, however the generous stock options somewhat compensate for that.