Pros
The Work: You'll most likely never work on the same type of project twice. Every project provides great challenges and good opportunities to implement new tech. The company is full of knowledgeable developers with varying backgrounds. You get to work with other people that are passionate about development. Your career path is what you make it. There are a lot of opportunities for growing your career. The Office: The dress code is casual. The hours are pretty flexible. The people are nice. There are lots of common interests among the employees. Gamers frequently play games during lunch or after work. There are lots of randomly celebrated holidays (eat ice cream for breakfast day, May the 4th, National Talk Like a Pirate day, etc).
Cons
This place is not for everyone. You have to be able to pull your own weight around here. People that can't cut it usually try to smear the company's reputation by claiming all employees are elitists, or we fire people like crazy for no reason. This is pretty far from the truth. Turnover has been really low over the last few years. Not as many internal projects/apps to contribute to when work is slow. Like all jobs, there is drama and politics, but it can be easily ignored if you don't get involved or ignore it.