Pros
Smart, diligent, invested co-workers. Long-term projects. Treats each employee as an individual. Technology comes first. Will never waste your time in a pointless meeting. The meeting thing is real, and depending where else you've been / how you roll, it's gold. Communication on technical issues is very strong, not in spite of but probably because of, distaste for pointless meetings. The engineering side also holds very strong sway, which can occasionally be difficult if your eye is on the bottom line, but also makes things a lot of fun. Technically challenging projects are commonplace, both because of the nature of the business and because of the culture. Conquest of hard problems is genuinely celebrated. The core technology is treated with care and viewed as a long-term asset. If programming and hard problems motivate you, those things are a lot of fun.
Cons
Has some problems of small companies: occasionally disorganized; possibly not a lot of career growth. Can be lacking in mentorship for many people. High degree of autonomy, but you can also be expected to sink or swim on your own. That's a challenge for some, and has potential to make things a poor fit.