Pros
There is a good focus on culture and maintaining a healthy work-life balance. As long as I get my work done, I can be flexible about when it's done. It's easy to talk to managers (when they have the time). The company is growing in revenue, breadth of products offered, and number of employees. They have recently expanded to take over most of the building that they're located in (much better than being crammed together on a single floor when I first arrived here). The office is for the most part a genuinely nice and happy place to work. The software product is enjoyable and rewarding to work on, and has made enormous strides in quality and maintainability since I've been here. It feels like there is a legitimate focus on putting out products with great quality, and the work necessary to do that is engaging and fulfilling. I do have a number of concerns as would most anyone at any company, but overall I still feel that I'd recommend it.
Cons
The benefits are mediocre, and my personal compensation is in the lower quartile of my job sector for the area comparative to my experience. I have not gotten a say in any salary negotiation in my time here - it's handed to me and I'm expected to accept it. I often talk to friends in similar positions at other companies and am disappointed in how my benefits compare. Cricut touts things like educational opportunities through Pluralsight but only maintain 10 licenses for a company of several hundred. I have also asked about things like graduate education opportunities and have been repeatedly told "we're working on it", but it's been years now and nothing has changed. Management in multiple departments is way too horizontal in structure. Our VP of hardware has 20 direct reports, and our VP of Software has 33. At that point you can't possibly maintain a decent level of communication with your teams, and both departments keep hiring faster than they can plan or build teams with a coherent management structure. I don't feel like I have an upward career track here. There's no plan, either verbal or written, for any sort of career trajectory. When you're labeled with a title for senior, principal, or plain old engineer, it feels like that's for forever title and a forever role. In a department of 50 or so software developers, I can count on 1 hand the number of promotions I've seen in my several years here. The company culture is well-meant and well-implemented for an overall positive atmosphere, but doesn't value employee growth so lots of employees end up leaving a couple years after they're hired on realizing there is a ceiling to their growth.