Pros
skill: i'd put our developers up against any of the big/small webdev shops out there. we don't say anything is impossible, we say it's hard and then proceed to figure out an elegant solution for the problem. scale: you work on sites that get a lot of traffic. it's not unusual to work on sites that will get millions of hits a day. this means that performance and efficiency are always on your list, not an afterthought. it also means that when people ask you what you do, they will have actually heard of what you work on. people: i work with some of the smartest people i have ever met. not a day goes by that i don't learn something new and non-trivial from someone. if you have a question, you just ask it and you will get 20 answers with most being spot on. collaboration: we work on big projects. this requires working with a lot of different teams and people to get everything out the door with the high quality that we expect and that our clients expect. this will always have its highs/lows, but you are never by yourself on a project. advancement: we promote based on merit. these decisions are not taken lightly and we are constantly revisiting this. if you show that you have the chops and the desire to take on more difficult problems, the sky is the limit. complexity: we don't write brochure sites, we write web applications. this is not trivial development. it takes serious thought and application to make a site that runs screaming fast, don't kill cpu/memory. culture: we have a very open culture. you can turn around at your desk and you will see 20 people chatting and not always about work. it is fun and friendly. even though we are constantly growing, we strive to keep our culture feeling small because that is the kind of culture that we want to work in.
Cons
workload: sometimes the workload does get a bit heavy or compacted at the end of a project. sometimes you put too much work into a small feature instead of working on the main functionality and this eats away at your dev time. sometimes you don't get everything you need on time and this throws you off schedule. sometimes we size a project incorrectly. these are things that happen anywhere though. and we are cognizant of when someone is going heads down and try to make their next project lighter so they can recuperate. transparency: sometimes internal team deliberations about some tech we are working on doesn't get messaged out to everyone well enough. when that message doesn't have someone who evangelizes it throughout the company, not everyone knows of new tech or standards. food: sometimes we run through the food too quickly and are empty until the next restock, unless you like raisins, in that case, your good any day. also, there is only so much chocolate you can eat until it loses it's luster, at least for me.