tldr; a failing leadership team, weaponized HR, and toxic middle management. None of these groups have any trust in the engineers, who have been reduced to code monkeys who spend all their time battling production fires instead of delivering features and are burnt out. The company is plagued by employees with substantial business knowledge constantly leaving but try to spin it as 'normal attrition'. Avoid the engineering teams at this company at all costs.
Based on my experience, reasons to avoid this company like you would avoid Ebola:
1. Failing leadership
There is a constant flip-flop on priorities from the CEO. There is no long-term vision and at times every week there is a brand-new unheard-of priority sent out to implement. Lower level 3-6 month product roadmaps are invalidated immediately by leadership, who don't actually listen to the people on the ground. Projects are constantly built up, invested in, then dropped after months of work. Engineering teams are constantly scrambling to reprioritise and end up scrapping their own initiatives, leading to year upon year of stagnation in the software and systems being built.
2. HR is weaponized against the rest of the company and employees are scared to speak up
All those YouTube videos on "HR is not your friend" or "why you should never talk to HR"? Those videos are about this company. Additionslly, every company-wide meeting employee engagement is discussed but it's dismissed that engineering engagement is in the toilet and skilled people are constantly leaving, while ignoring that their own actions promote a culture of fear and employees are scared to speak up knowing they will be retaliated against.
"Anonymous" surveys with written sections for commenting are sent out, which are then used to trace responses to specific employees. Other examples of a lack of professionalism include that employees here have literally come back from getting coffee out on the street to find their belongings collected and dumped in the building lobby and their keycards revoked with no explanation.
3. Hiring is biased to the managers friends
There is no independent oversight of hiring to avoid nepotism. Hires are made despite completely failing interviews or warnings from other staff about candidates because they know the hiring manager.
4. Middle management are incompetent micromanagers, do not trust engineers, focused on managing up
Management are frequently former engineers who can't let go of their engineering glory days. They have a constant mindset of "I'm a better engineer than you are" and do not trust the engineers, leading to constant micromanaging like calling your phone if you haven't responded to a Slack message within 10 minutes demanding to know what you're doing. At multiple levels power and privilege is used to insist on doing engineering tasks such as system design or coding then force that work down the engineers throats, then getting upset when the engineers disagree with their work or ask them to justify a technical decision beyond "because I said so". Production issues have been caused by their poor engineering work which the actual engineers then have to clean up and take responsibility for. Teams are thrown under the bus in public meetings so that they can manage up and talk about how they're working hard to resolve the issues they're responsible for creating.
At companies like Netflix employees are famously fired for putting themselves in a position where they're the only ones who have critical business knowledge. Here, people managers will actively work to remove people on their teams so that they are the go-to person instead, and once they take over system design work or any other actual thinking they're indispensable linchpins whom it's impossible to remove no matter how toxic they are. As an engineer you will have no chance to grow or think for yourself, limiting your career both here at the company, and long-term at other companies. In the event that ideas do make their way up because the software was failing so badly it needed to be fixed, expect the managers to lie and take the credit for the idea, so that the engineers responsible for the work will never be credited or promoted.
5. Constant on-call production incidents and failing software
You will be paged multiple times in the same night from reoccurring problems. Teams here have up to 70 production incidents per week at all hours of the day and night, and on-call rotations (aka waking nightmares) are typically 1 week out of every 4-6. During an emergency it's likely you can't act because the software services here across all the teams are so tightly connected to each other that a microservice in any part of the flow which crashed will then cause fatal errors in every other system from bad responses and backpressure in shared infrastructure. The engineering teams spend more time responding to production fires than delivering new features and constantly propose solutions to this nightmare scenario but have no autonomy to implement them because the executive teams switch to new priorities every week which take priority, and if the team's people manager didn't suggest it then they can't get credit and so won't support it. As a result, the engineers are constantly burning out.
0/10, do not recommend.