Great benefits.
Mostly individual projects.
Opportunity to take charge of applications and make yourself into a subject matter expert.
Cons
Teams worry too much about covering their butts and are generally not very helpful unless the task is easy.
Too much focus on time and not enough on quality.
My manager's often don't know much or care about the intricacies despite the impact they can have.
Poor talent pool at times. I work amongst a programming team in which most seemed to have stumbled into programming. They don't have much advanced knowledge. Most don't even know what a linked list is.
A decent salary, experience working in a large financial institution, and a not too pressured working environment are all good reasons to work for Citi. There are also good career options with internal mobility.
Cons
The technology is not always the latest and greatest; there are some exceptions and teams doing really good work, but there are also some legacy systems. In such a large company it is also possible for mediocracy to survive.