Pros
There are already tons of reviews here explaining why Asynchrony is such a fantastic place to work, and I don't have much to add to them except to confirm that it's all true. The work is interesting. The people are smart, dedicated, and wonderful to work with. It would take deliberate effort to work here for a year and not significantly improve your abilities as a developer. Pair programming is scary to some at first, but I think that fear comes either from a misguided notion of what it is, and/or defensiveness about one's own ability. It's all about collaboration and the notion that two heads are better than one. Something we do really well here, and it's no accident, is *feedback*, which is a crucial ingredient of self-improvement. Working here you learn both to take constructive feedback in stride, and to give constructive feedback without putting people on the defensive. That's my best sales pitch for the kind of pair programming we do here.
Cons
Honestly, the only negative experiences I've had here have had everything to do with the clients we worked with when we were expected to do co-development with client development teams who naturally felt threatened by our presence. Usually a client wanting to do co-dev is also a sign that they will be unwilling to give us the autonomy we need to do our best work, and this will lead to our developers feeling frustrated.