Pros
For code lovers, there is never a shortage of software to write, read, review, etc. The cross-training performed allows for employees to gain experience in all elements of the Software Development Process. Promotion/Recruitment from within has always been a focus of the company. The smaller agile development environment allows for an efficient and accurate software delivery. The tasks assigned change frequently enough to keep from becoming stale. Co-Workers are pleasant and the environment is usually jovial. Salary has been competitive relative to the market for positions I have held. Pioneering new software and equipment is challenging but highly interesting work. Seeing the finished products and recognizing it in the field is always a prideful and rewarding experience.
Cons
Deadlines tend to be short / task lists tend to be heavy. Long-term employee benefits are behind market comparison. Work from home is still frowned upon