Pros
* responsibility - lots of responsibility handed to interns
* flexible offers - can work on many different technical areas
* friendly employees - good to have as coworkers/mentors
* small company - you will know everyone
* product development - products are rewarding to build, so I'll put this here. This is unlike if you work in consulting, or another business type.
Cons
* poor CI/CD - makes integrating into a project extremely difficult. On multiple occasions, code was handed over a USB drive from a senior eng's computer. No development environment was offered, and so getting code to run on the computer can take hours of install/troubleshooting.
* a feeling of stratification, with few mid career engineers (either senior, or entry level)
* no (good) HR - your eng supervisor will often take on the timekeeping/HR tasks for you, and Insperity is used for most of the common HR items. I didn't realize the power of good HR until working for a company that had an excellent team.
* poor diversity - I didn't notice this much, until I worked for different companies. It's a good group of people, but diversity is low.
* lots of pivoting (common for new company like this) - projects get scrapped at a moment's notice.
* poor compensation (again, common for a new company like this) - it's very important to know your worth. If you're capable of developing linux device drivers, develop RF circuits, or do network program well, then you will likely be compensated much more (2x more) elsewhere.