Pros
Apart from my experience working remotely, I honestly couldn't ask for a better work environment. Freedom to continue to gain new skills. Very flexible schedule and time-off. Personal and professional growth is encouraged, complete with coding challenges. Management is very trusting, and the colleagues are very trustworthy. Drinks and snacks provided almost daily. Lunch provided once a week. Very laid-back, almost a family-oriented place. It makes for a very healthy work environment. I am surrounded by young and insanely talented people who are very caring, thoughtful, and willing to share their knowledge one-on-one and in group training sessions. Several colleagues are very athletic. We play a variety of sports almost daily throughout the summer. This is the only place I've worked where people actually work as a team. I've never seen a developer get left to fend for himself/herself. The absences of bureaucrats and bureaucratic procedures. The projects that come through our doors are very interesting and challenging. Nothing to complain about regarding compensation: it is competitive.
Cons
Due to the nature of being a service company, there is the risk of dealing with difficult clients and long hours and weekends are required. Cell phone reception is terrible. Luckily, I have other apps to call via Wifi.