1. Weak leadership 2. Lazy Product Managers who provide ambiguous requirements and expect the engineering teams to do their job of defining requirements, and then code as well 3. 0 job security- They will fire you without a warning and over email, by giving untrue reasons 4. No perks 5. Incompetent technical managers, who are just people managers with weak technical understanding 6. No career growth