I can't comment about any specific code bases for obvious reasons but I'm more often than not positively surprised by the quality of the code at the start-ups that I look at. Of course there are corners being cut, but usually that's for very good reasons marked with copious 'todo's. Start-ups definitely aren't equal when it comes to this and in my experience there is a definite correlation between those that ride that fine line between being in a hurry and making a good product and those that create a mess and those that try to be perfect out of the gate.
The idea here is that you do the best you can within the constraints, not that you use your start-uppishness as an excuse to be sloppy or to produce crap.
In fact, the majority of the real messes I see are not in start-ups but in more established companies where the original developers have long since moved on. Large codebases where very few people (if any!) have an idea of what is really going on.
I have been at startups where it's a total mess that will never be cleaned, and I've been at startups where the code is always tip-top because everyone knows you get big B2B points for implementing their dream feature right after a regular "how are you liking our service" followup.
I haven't worked at mega-corps, but I've seen bits of code that is so much worse than imaginable that I expect there are places that scrape pretty far below the bottom of the barrel, but that might just be a volume issue (the worst 1% of code will be mostly mega-corp code because most of _all_ code is in mega-corps).
The idea here is that you do the best you can within the constraints, not that you use your start-uppishness as an excuse to be sloppy or to produce crap.
In fact, the majority of the real messes I see are not in start-ups but in more established companies where the original developers have long since moved on. Large codebases where very few people (if any!) have an idea of what is really going on.