Pros
Good technical and deep mathematical work at times. Being able to travel was a plus. A lot of technical staff have left, but that means some of the awful people have left. Being one of the few technical staff means you might have some bargaining power (ha). They're doing you a favor by giving you a job in this economy. No wait, you've probably got reasonable qualifications in a technical field and can go anywhere else. Although by the way standards have been slipping you might be able to work here with an arts degree, so that's a plus. Moaning daily about management is good fun too, really brings the mood up. The company encourages presenting lectures on updated technology, and teaching new programming techniques to other members of staff. There used to be good mentoring for inexperienced employees, but with the workload there's no time to actually teach; and by now there's so few experienced staff there's no time at all. I don't know why we even bothered with graduates because university education is very lacking nowadays; 16 year old school leavers will be very cheap and about as useful.
Cons
Hand-holding hardware engineers at the other office and clueless customers for the umpteenth time through software they should already know. Writing dull GUI glue gets repetitive but we're told we don't have time to write proper reusable components. Being at a technical company means hardly anyone has the right 'look' (you know what I mean) so being one of the only ones allowed to travel can get tiring in busy periods. No girls. Lack of time and resources means things are left in a haphazard state as long as it works. Letting inexperienced new graduates write entire systems which make the underlying data processing foundations look shoddy. They've been lowering the bar with each new recruit to save costs. Then letting them loose unsupervised on the codebase. For instance, the last few new recruits look like this: Experienced software engineer, recent Oxford graduate, recent top London uni graduate, regular London uni graduate, and finally a uni graduate who later admitted he only passed due to a clerical error. It didn't save any money as they were all paid the same - although a few people had to jump through hoops to get paid what they were told at their interview, and the decline in quality really shows. Technical decisions are sometimes steamrolled by the upper management based on what was used back in the 1990s. Despite the fact that they are busy managing the company to actually have any time to read up or code anything coherently. Finally, you can expect very little pay supposedly on account of the economy, but those statistics only apply to people with soft degrees. The lack of pay increases for several years can be career destroying when moving to a new job unless you completely withhold that information at interview or mention numbers based on what you should have been paid. Any discussions about pay will immediately be met with straw man arguments such as the company not being able to afford to pay everyone £80k a year, although you might have a better time now that 100s of thousands of pounds a year have been freed up. Personally, although my job title changed multiple times, my compensation did not, unless you account for inflation then it went down quite miserably. Being in the middle of nowhere probably accounts for some of the low pay, but with a city-based cost of living and expensive trains to deal with, it really was painful for me.