Pros
Software management at this company is very good, both in their capability to estimate work, and in their technical knowledge. This may be because the software managers are taken from the same pool as developers, so they have many of the traditional skillsets that developers have.
The average quality of software developers is quite high; unlike other jobs, I rarely have not had to re-do substantial work done by another employee to maintain quality within the past 5 years.
There is significant project turnover, which helps keep us up-to-date on the latest technologies. We mostly work on medical projects, which is nice, as it makes you feel that when you're doing your job well, you are likely to improve your society.
Cons
There is relatively little cross-communication between projects; in many cases, I barely know people who have been here for years if I haven't been on one of their projects. Choice as to which project to work on is essentially absent. This means that the process, team, tools, devices, computers, and manager may change frequently, depending on your current work. We are sometimes hired as a "last resort"; i.e. when the hiring company and/or other contractors failed. While we usually succeed on such projects, there can be some front-loaded stress when we get on such a project.