I can tell you that working with legacy turd (that will probably run for another decade or more) isn't necessarily much better.
Again the deadlines and lack of planning ahead bites. Look we just need this little feature now, it can't take long? And again, and again. You never get enough time to take a step back and re-evaluate design decisions (or, God forbid, plan ahead and do it right in the first place) and fix what wasn't done right. No, it's always this little feature that needs to be quickly hacked in, another branch, another special case, how it interacts with other past or future special cases is anyone's guess, and the code base that was already full of hastily hacked together barely-functional crap grows more and more poorly thought out crap. Tests? What tests? No tests, so if you dare go back and try quickly fix some poor design.. well, someone is eventually hopefully going to find out what you broke and give you a completely uninformative bug report. Updates? Well there's no ticket for that. And besides, something might break, because there are no tests. There's no ticket for tests.
Sometimes you might even wish that the whole thing would be discarded and done from scratch..