Pros
The work is really interesting and will provide you with many opportunities to improve your technical skills. In 10 years you wouldn't likely learn all you can from these people and the work they do. The healthcare and time-off are about what you'd expect but the 401k is far below par. Other perks like working in an amazing office with incredibly smart people add up to enough to compensate for holes in other benefits, especially if you value work-life balance. They literally turn off the lights and air conditioning at 6pm to remind people to go home. Unless you're under a serious deadline you'll never be expected to spend your evenings in the office. Having a technical CEO makes for an incredible culture. Every person in the extended engineering org and their management writes code, so you'll not likely have a hard time explaining why some bit of software is behind schedule or why we need to delay the release to address some security concerns.
Cons
Promotions come infrequently or not at all. Expect the salary you negotiate when you get the job to be your salary indefinitely, even if they assure you it will be up for discussion at review time. Standard complaints about technical debt apply, especially given that the company grew so quickly. The management is generally pretty committed to resolving that though and we're given plenty of time to address bugfixes; less to do general refactoring. The biggest con would probably be that management knows how much you like working here and they'll use that to delay raises and skip perks. Turns out that being too happy at your job also has a bit of a downside. Don't play the 'I got another offer for $X' card, you'll likely be invited to accept your new job. They're well aware of the fact they are one of the best places to work in Portland.