Vantaggi
If you are a developer and you have a new idea, say for a new feature in the product or for even a brand new product, you're free to work on it and implement it, with complete support from management. There will be no one to stop you or tell you what can be done and what can't be. You can choose any tool, any technology you like and follow any methodology. The only thing they care about is whether the thing will sell and add to the revenue. Work time is flexible, and working from home is common. Managers are pretty cooperative as well. Almost all managers are ex-developers who have worked on the product for at least 5-10 years. They are extremely technical and have a very deep understanding of the product and the issues involved. You are fairly well rewarded if you do something that adds to the company's bottom line.
Svantaggi
There seems to be a complete lack of long term strategy for the product and the organization and no long term goal or career path for employees. They work hard towards the next release, adding as many features as they can to compete in the market place, release the product and immediately start working on the next release. The pace of work is hectic all year around, resulting in poor architecture, bad design and sloppy code. The result is a lot of defects and customer issues in the field, which have to be handled without affecting the development schedule for the next release. The work pressure is pretty high and it is fairly routine to spend long hours in the office. A 12-hour day is considered quite normal here. The pay is below par and the attrition rate is above average.