Pros
If you work there for a while, a person can take on anything they want and nobody will bother them. If management feels that they can rely on you, a person can do anything they want and in any way you want. I have never met anyone that didn't like the work, it is the management and the culture that is difficult. If a person can prove a concept can work, the management will allow the project to go forward. The programming department develops a wide variety of programs using SQL, XML, reporting tools, and other variety of integrations. The company does many things and it does allow the software developer to spec out the software.
Cons
Long hours. 45 hour minimum. If a person wants to look good, they should work late. Its not what time you get there, its what time you leave. The management can be very unreasonable with timelines for enhancements for bug fixes. When a large project comes due, the programming department will work between 60 to 70 hours a week to make sure the project gets done. This happens about twice a year for about 3 weeks at a time. They did hire a project manager to deal with some of this. They have a hard time keeping people, but management does not see high turnover as a problem. If they have one or two people that stay, they are happy.