Pros
- Great place to learn & hone technical skills + can work/learn on any level of the OS development stack (boot, drivers, kernel, graphics, filesystems, networking) if you're willing to put in the work - Last diminishing remnants of the old guard are extremely strong engineers & can be good mentors
Cons
- Cannot attract or retain top talent anymore. Lots of crud in every team outside of Core OS (last remaining moat of technical excellence). Majority of all the core developers for graphics, filesystems, networking, security etc. were poached by Apple. Good developers in other teams are mostly older folk there for 8+ years, good junior developers or coops go elsewhere because BB pay scale is pathetic. They are forced to dumpster dive for poor developers (especially folks to transferred over from BB) just to fill chairs - Development practices are ancient & not scalable (outside the CoreOS team). No continuous integration, no Wiki pages, no automated bench testing for developers etc. - Management practices are ancient, no regular 1:1 meetings, no career development plans or encouragement of junior folk. Everyone is a developer and career progression is ad-hoc. In contrast the managers keep getting promoted to fancier titles but the work force size is stagnant - Lots of customer facing project managers, only a tiny fraction of them are competent. Most are just the posturing type with no technical background & are (perhaps unwilling) forced to push for rushed/hacked fixes to keep customers happy in the short term but accrue technical debt in the long term. Have to do timesheets which is really annoying.