Small company so employees have the chance to really make a difference at every level. Management is approachable and willing to listen. Company is extremely ethical.
Cons
The size, while a good thing in many ways, can limit opportunities for advancement.
Really smart people work there. Hands on experience with a huge variety of hardware and software. Flexible hours and a real drive to keep improving every part of the job. Just plain fun programming.
Cons
Pay could be much better for this crucial part of the team. It can be hard to balance individual project deadlines and long-term product development.