Pros
I had many opportunities over my period of employment to learn new things. There is a certain egalitarian feel to the culture - young engineers are encouraged to work with and learn from senior engineers, and the opinions and ideas of less experienced employees are not simply dismissed because of their lower "rank". I was able to move around a little bit within my role and learn many new things over the time of my employment, and I definitely got to work on some interesting projects.
Cons
Although I had opportunities to move around and try new things, I was ultimately locked into one role because there was no career path available for me to follow. There is very little mobility, from my experience, to move upward and grow in the company. I spent nearly a decade doing the same job, with the same job title, despite consistently getting stellar performance reviews. This is why I eventually decided to leave the company. On an unrelated note, the compensation is simply not competitive. Although I received many stock options in the early years of my employment, the stock stagnated by the time they had vested and they were ultimately worth nothing by the time I decided to leave. While I was still an employee, I interviewed and received job offers at a few competitors just to see what else was out there, and most of the offers had salaries ranging between 30% and 50% more than my salary at the time, which was very tempting. Most of my coworkers I know who left the company were rewarded with significant salary increases at their new employers. I enjoyed the work, so I stuck around... but I could have easily left at any time to get a 50% raise at a competitor.