Pros
- friendly people - nice offices - there are more good teamleaders than bad - generally the company handles people like people and not like robots - good salary - you can have an impact on the company, if you have good idea - only a few days of overtime in a year, and they pay for it (usually when the project's deadline is near) - possibility to travel abroad to many places of the world (for example to other offices or to customers or do field testing) both for shorter (few weeks) or longer (0.5-1 year) time - possiblity to change positions inside company (c++ developer, ui developer, field tester, technical leader, teamleader, project manager, etc.)
Cons
- many people don't want to adapt new programming techniques, new technologies, their thinking is outfashioned - there are many people, who don't do proper work (eg. lazy) or don't take responsibility. If you expect quality from others, it might bother you - lots of company made tools to work with (but most of the time they work properly) - there are many homemade codes, which could be changed to better thirdparty alternatives, but specialist people think it's an adventage to write our own version of everything (but I think it's a disadventage) - there is very little documentation, most knowledge spreads by asking people who have been working there longer than you - customers are automotive companies, who provide SDKs which do not use cutting edge technology, so company is forced to use older technology (we switched from C++03 to C++11 only around 2015) - when project deadline is close, they expect more work, even overtime, it can be stressful, but most of the time work isn't stressful. - codebase is quite old, the base was written 8-10 years ago, and many people are affraid to touch it, there are no enough resources to think over and rewrite the very base of the software. - no proper automated testing - the endproduct is made for embedded device, but the majority of the company neglects it, and develops only on windows.