I've worked here for approximately 5 years and really enjoy it. My coworkers are great and I feel like they're my second family. Lunch is a big social event with cards and games, and there's a "team-building night" (video games) once a month. I feel that management actually cares about me and I can approach anybody at any level - even the owner of the company.
There's a profit sharing plan in place and as a result there's full financial transparency - we even get to see the deposits. I get a kick out of seeing a cheque come in and knowing that I did the work to make that happen.
The code base and architecture of the product is pretty cool. However there's a lot of things that need to be improved and we never seem to get to all of them. If you like SQL this is the place for you; if you're faking it and aren't going to pick it up quickly then don't bother. I prefer writing VB code but almost everything here happens in SQL unless you're lucky enough to get assigned some of the VB work.
Cons
When people ask me what I do, explaining that I write membership management software for unions doesn't make me a hit at parties. I try explaining that it's a far more complex and interesting niche than it sounds, but it's a pretty dry subject to most people.