Ask HN: How to deal with incompetent, obstructing CTO?
Beginning:

- I started 9 months ago for a company building battery management systems.
- The company is one year overdue delivery, customer is overly patient.
- 3 developers quit one year ago due to dysfunctional leadership (I learned).
- 14 days after I start, old CTO quit because of long-covid health problems.
- 14 days after that, new CTO joins.

Middle:

- Other devs are introvert and communicate little (no docs, no comments, empty commit messages)
- "I can fix this!" -- CI, testing, linting, issue management, strategy: I'm de-facto software lead
- First 3 months, new CTO stays mostly in background, mostly focuses on low-level hardware problems
- Gradually, CTO starts disturbing developers now operating at 30-40% capacity on their main tasks
- I present statistics to CEO and CTO and over 3 weeks, CTO stops bugging developers as much

Crux:

For the past few weeks he's been working from home on "future design documents". I showed him "ADRs" (architectural decision records) but I made them live in the issue tracker instead of in git to minimize the effort of cleaning it up afterwards.

I've told him kindly that what we're making is principally equivalent to his vision, but he needs to let software people design the actual interfaces and implementations. I've tried to say what he's doing is premature generalisation: Instead of making overly generalised software interfaces over hardware ("A battery is like an inverter in that they are both POWER UNITS!" (I'm not kidding.)), he should find out how to make the actual hardware work. I've been bold and told him: His current work is a waste of time. I even resorted to bullying by tagging all non-sensical ADRs with "POWER UNITS", and ended up apologising.

Recently, he started drive-by commenting the issue tracker, closing random issues because "fixing this is not worth pursuing right now" instead of reordering an infinite backlog. He started creating a bunch of "projects" with unrealistic or no timelines. He remembers details wrong. He remembers problems as solved when they're not. He lies to our customer to downplay the product's state, and it's shown at least a dozen times.

He repeatedly tries to book developers to listen to his ideas for hours, but nobody is buying into it.

Having been booked for a two hour meeting with the most senior architect guy, I asked him how he copes, and he told me he's been just as bold with how stupid this is, and our CTO brushed this off as well.

Time spent with him feels like lost time: He can't provide details, and he can't contain them either.

He strong-armed that I could run Linux in spite of policy.

And he fixed real hardware problems in the beginning.

He's a nice, awkward guy; I like him personally, but he is worse than useless to me as a boss.

Lately I've applied for similar jobs with a clear "Lead" in the title.

I really like this job. I like coding Rust, having an impact, growing my leadership skills, the commute, the simplicity of a small place, the potential to grow production, and the vastness of scaling operations here.

But I can't accept this obstruction, and I don't know how to be nice or constructive about it.

I want to find an alternative job and wave this in front of my leaders and tell them I'm neglecting more salary and less stress, and I don't see the upside.

I can't ask my CTO to quit or I will. I've been hoping he would quit for 6 months, but it's just got worse.

What should I do?

Sorry for ranting.