Nearly every software team is fractioned between the legacy original Chinese team and the new-ish in-house Seattle counterpart. One of these teams is highly competent, talented, and composed of seasoned devs that joined a company offering extremely generous FAANG compensation. The other team is, well, the opposite of that. There is a power struggle between the factions. They don’t really work together. Changes to pull requests are often ignored if made by the “other” team. There is a lot of finger pointing and weird tattle-tale blaming from one team when the other team introduces a bug, even a minor one on a pre-pre-alpha build.
Management and product decisions seem completely impulsive, changing week to week. There must be dozens of product managers pinging individual developers everyday asking for status updates on their pet feature request. Some features get requested then scrapped half-way through development. Other major features like Cam Plus Lite are ham-fisted at the last minute without fleshing all the requirements and use case scenarios. Only later in testing the “beta” do we enjoy late night meetings to handle all the “oh shit we never considered THAT”. The amount of tech debt is staggering. EMs are powerless.
The turnover is insanely high. No one seems to know what’s going on or whose responsible for what. Nearly everyone I met had been with the company less than year. Some internal tool doesn’t work and all the documentation, code comments or git commit messages are in a foreign language? Google translate that shit and pray it makes sense.
I could go on and on. But the important takeaway is there is a lot of general confusion at the product management level, internal communication is poor, and everyone is working a thankless 12-16 hours a day building crappy software for crappy hardware.