Pros
You don't see a lot of mass firings in the engineering department. They are happy to put you in a position to do a job that you may not be considered for in another company because of lack of experience or qualifications. Free parking, coffee and occasional lunches.
Cons
Like others have said. They have trouble getting rid of dead weight and difficulty motivating the top talent to stay. Very much a sit down and shut up environment. Feedback is not encouraged. Everything is political. Requires a policy and procedure for everything. It is common to see people thrown under the bus. Getting basic tools to do your job is impossible. Lots of lip service to software development methodologies in use etc., but no execution to back it up. Turnover is high.