Average at best. If you're competent at what you do, you have far better options.
Pros
* Very flexible office hours, you can come and go as you please as long as you get things done (with some managers). * Good medical benefits for the company size. * There are a few people in the company who are great at what they do. If you end up working there, find out who they are and stick with them; your life will be easier.
Cons
* Pays about 5-10k less than the average for software development positions in this area. The main figures on this site might be padded towards the high end, but you'll find out for sure if they make you an offer. * More fear with new technologies than innovation, and it leads to a lot of wasted effort in development and testing. * Falling behind with "cutting edge" technology. They're currently moving to .NET 3.5, but hardly anyone knows the framework and most are still programming from a non-OO perspective. * Project managers were promoted from senior development positions, and are lacking the interpersonal skills to do their jobs properly. They don't seem to read up on management or software books (or read far too many bad ones), as they often use catch phrases that sound good, but are effectively meaningless to the workers and don't help get anything done. They get angry at workers when deadlines slip (even if it isn't their fault), instead of just dealing with the situation professionally and working with the resources they have. * Some of the QA's think that giving you a hundred defect issues with one piece of information each is better than giving you ten issues with defects grouped logically. Leads to wasted time, frustration, and less work actually getting done. * Things are usually rushed, and code-quality practices are non-existent when deadlines come up. It's the type of environment where firefighting has taken precedence over most everything else. * Don't let HR glaze over the hours worked while you're interviewing, ask about it. When deadlines come up people are working late nights and weekend hours for 1-2 months before releases, which can happen every 4-6 months. * They've promoted technical people who don't have the skills for their position titles. I had a technical lead on a .NET 3.5 project who was supposedly "senior", but didn't know how to use LINQ, program with generics, or use partial classes with T4. (Also, the awards listed on glassdoor for this company are misleading. Those are actually for "Recreational Equipment (REI)", not "REI Systems Inc.")