Pros
* Retirement matching is super good * Superb work/life balance and hours flexibility. Any hrs worked over 40 can be re-used as a vacation-like time. Some people really do work whatever hours they want to. * Get to work on many different projects. It's common to be split between two or three projects. * Some projects involve some really cool technology.
Cons
* Some projects are just plain boring. Draper advertises a lot of cool projects, but it's only ~5% of the work they do. * Work comes in boom and bust cycles - but mostly bust. Sometimes you'll be scraping the bottom of the barrel for stuff to do, or you'll be trying to network for tasking because your project is ending. Other times multiple projects can have simultaneous gluts of work. * Lack of modern dev-ops type tools. You can't run Docker on your computer, you can't set up any sort of CI/CD platform (unless you commission a VM and try to set up a git runner there), and there's no easy way of sharing code artifacts (eg: nexus) . * Most managers don't really have a good grasp of their people's daily responsibilities or career goals. * Lots of turnover at all levels. One large (100+ people) program had 3-4 different managers over about 2 years.