Pros
Good culture, friendly people, very rare to have run-ins with colleagues
Lots of flexibility in when, where and how you work
Interesting technical problems to solve and lots of opportunities to learn
Cons
Management is unaware of and slow to act on problems in the workplace
Low levels of follow-through and communication from management in general
Good ideas fizzle out - projects get partially done then forgotten
Tech debt is allowed to grow to high levels and only dealt with when it becomes critical
Ageing codebase that is difficult to maintain
No formal performance review process