Pros
The work is very engaging, the supportive culture is amazing (you can challenge an idea or admit to a mistake without worrying about retaliation), the company is rapidly growing, and there are no barriers between mid-level employees and senior leadership. There is no risk of getting pigeon-holed into doing one task indefinitely, unless that is what you want to do.
Cons
Promotions in engineering are hard to come by, even if you're doing excellent work and are highly regarded by your peers. While you can gain influence on a technical and programmatic level by taking on the more senior roles easily, the engineering level given to you often does not keep up. There has been a very visible trend in placing newly hired employees into lead engineer positions on paper rather than giving the employees who are actually performing the lead engineer work the lead engineer title. There is a sentiment that you essentially need to leave the company then get re-hired just to get up to the position both you and your peers think you should have.