Don't work in development. It's not worth it.
Pros
This company knows how to play. We have lots of company-sponsored activities: hot dog eating contests, free movies, cabin retreats, international "survival" trip, holiday parties, and the occasional catered lunch. Like most tech companies, the overall atmosphere is very casual. Everyone wears jeans to work. There is a pool table and a ping pong table for breaks. Dodgeballs and foam darts are commonplace in the office. In general, I would say that the vast majority of employees are awesome, hard working people.
Cons
One of my biggest concerns is that the CEO refuses to delegate. He won't hire product managers. Instead, he tries to take on the role of product manager for all 25+ products that we offer. Since he's a development guy, he's also heavily involved in the architecture and development of every product, as much as possible. When you consider all of this together, it means he's spread way too thin, and he's not able to cover any of those roles very effectively. It means he comes across as a micro-manager who doesn't trust anyone. My experience is this: you won't hear anything from him for months, so you're left to fend for yourself. But then he suddenly appears and uproots your entire roadmap. It doesn't matter if you've made commitments to clients or peers, the CEO answers to no one. Then, just as quickly, he's gone and you're left to pick up the pieces. At this point, don't even think about disobeying him because he can and will fire you. It's happened many times. Because of this, pretty much everyone in development resents the CEO and simultaneously fears him. Most people feel that you're better off if you keep quiet and basically just try to stay out of his way. My other big concern is that sometimes the CEO can be a really poor communicator. His personal philosophies are really unique, so it can be hard to tell what he's thinking without explanation. (I've found that he's all about the minimum viable product, and he often takes that to an extreme with the architecture and scope of virtually every product.) But sometimes he's really secretive about why he wants to make huge changes. You can try to reason with him, but you're unlikely to get anywhere if he doesn't take the time to explain his position. Or he'll go behind your back and just make the change himself, which is an absolutely horrible management practice. It's hard to tell why this happens, I think he's usually shooting for speed while trying to avoid conflict. But really, it just makes people angry and more likely to push their projects underground. So, while all of that play stuff is great, let's be honest: in the balance of things, working in development really sucks. This is the first piece of advice we give to anyone who is new in development: listen to the CEO, or else you will get fired. Simply put, we've seen too many of our friends let go because they thought they were allowed to make their own decisions. It just doesn't work that way. Like I said before, the CEO answers to no one. Turnover is insanely high because people are constantly quitting or getting fired. Also, as much as the company likes to talk about advancement opportunities, development has none of those. That only applies to the client services side of the company. Do yourself a favor: don't work in development. It's not worth it.