Pros
In exchange, you'll get free lunches and a mug. There are a few nice people outside the core dev clique.
Cons
If you're a C++ dev, prepare yourself for the following: * Under-designed, over-engineered, ad-hoc, legacy, feature-creep system, w/ inflated belief in its significance. * Cult of personality, bad management (or rather lack thereof), arrogant, elitist core devs, with childish clique mentality and boasted ego. * 20% work, 80% procrastination. People go out drink coffee three times a day. * Incapable to accomplish even simple tasks, after years of "working" on them. * Failing Joel test items 7, 8, 9, 12, and barely passing 1, 2 and 6. * Devs lack analytical thinking abilities, solve everything ad-hoc without any proper design. ("Let's throw another 'if' there.") * Chronic bad choice of technologies. Play with every new feature or technology like kids with a new toy rather than evaluating it critically. * Hypocritical -- pretend they are open to criticism when in fact get offended by simple questions of "why". * Two weeks of utterly unnecessary training (that can be done in a day). Then you'll hear that "the system is too complicated for you yet", "you won't be able to do anything in the following three months" and "the senior devs would be offended if I assign that to you". Meanwhile you'll be patching their GUI and self-disintegrating business logic. * They do not help with relocation contrary to their promise. "only subject to being satisfactory evaluated by the management at the three month mark." Quit in 60 days.