I've given the generally relevant pieces on my blog, with varying degrees of cover. However, naming the specific company is what I've been debating over the past year. Thus far, I've chosen not to do it.

The reason I'm hesitant is that good engineers (who don't deserve it) might suffer more than the management (which does). I learned the hard way that whistleblowing often hurts the more vulnerable good guys first.

It's a startup of about 100 people. I could demolish this company's reputation with a few keystrokes, but the executives (who deserve it) would probably be just fine. It's the engineers who'd suffer-- having a disgraced company on their resumes-- and I hate that that's the case, but such is life.

What happened is that there was a "War of Three VP/Eng's". There was an unofficial VP/Eng (call him Dan) who did a really good job. However, with four product pivots in three years (the CEO was an idiot, but kept being able to raise capital because of family connections) there were legacy and code-quality issues. Top management threw Dan (even though he was a true 2.0+ engineer) under the bus, and the CTO pulled in a 25-year-old protege (call him Tony) who was fucking terrible. He knew basic programming, but this was his first white-collar job; story was that he'd burned out of college and was in retail before the CTO "rediscovered" him. Tony's quite intelligent and he can talk with the best of them, but he's technically mediocre and a genuine psychopath.

Dan had engineer support; Tony had management support but engineers disliked him because he was an obvious case of an incompetent protege. Tony's "rearchitecture" fucked the company badly. I was brought in as a 3rd VP/Eng (and actually promised the title, at the 6-month mark) to resolve it.

There were good engineers on both the old and new teams, and resolving the technical disagreements was easy. But in March 2012 it was clear that my real reason for being hired into the company was to give management a credible excuse to toss away half of the old team. I either had to sign a bunch of documentation that'd be used to justify Pincus-type moves against 11 of my colleagues, or give up my contention for the VP/Eng role since (apparently) that's just want managers have to do. I chose the latter-- really didn't want to be managerial in such a toxic company-- but Tony convinced management that if I was throwing in the towel for VP/Eng, I should be shown out entirely.

This wasn't only out of ethical altruism. I did the right thing for good reasons, but I also had no choice. If I signed the papers and gotten a bunch of undeserving engineers fired (or at least put through humiliating PIPs that would probably involve equity clawbacks) then I'd lose credibility and Tony would win. Tony (angling for CTO once the existing one burned out, which he did around the time I left) teamed up with management to set it up so that I would be the one getting dirty in the Pincus move. He could be the good guy CTO and I'd be the bad guy VP/Eng, the rubber glove used for evil work and thrown away. It'd be career suicide because no engineer would work with me after that.

It wasn't the rewrite that killed that company. The rearchitecture was a symptom of psychopathic management and a really horrible CTO-protege-cum-unofficial-VP-Eng. Still, it makes me extremely skeptical every time I interview with a company and hear, "We're throwing out all the old code" because I know how politically fucked-up that often is.