Pros
- lots of opportunities to learn new technology - professional atmosphere - invests in hardware and software to improve productivity - it is possible to work on collaborative and interesting projects - you know that you are creating value; many many very creative professionals use the software product for important work. - no one is pushed to work crazy hours. Some Software Engineers do so because they want to complete their projects.
Cons
- low salary compared to similar positions in the area - plays catch up to competitors rather than setting the standards. - tries to do everything for everyone with not enough resources which results in half-baked features - need leadership to invigorate employees to focused and motivating goals - some projects are boring or don't make a lot of business sense (employees need to _speak_ up if you're not doing something you don't like). - management doesn't always listen and great employees leave after not being heard. - is a little behind the times in terms of software development processes or work policies (such as telecommuting, core hours, etc).