I'm still incredibly thankful for the experience, but the lesson was not in actually learning how to do things right. Instead it instilled in me a deep yearning and desire to overcome organizational dysfunction, mediocrity and to overcome technical ineptitude.
Startups is a different animal. You ship things fast, and for the most part, you work with teams that care deeply about all aspects of the product, working with the best tools for the job. Sure, theres cargo cult tendencies - the beginning of this paragraph is evidence. The downside of many startups is that you move so fast that many times you never get to perfect anything, and the constant pivoting in unsuccessful startups tend to wear you down over time.
All in all, I learned much more about shipping code, adapting to the unknown and building products from startups than I did in enterprise.
The speed at which startups move is a cause for concern, however, because many of the people with which I worked were simply "lean in" types, and would have been able to get a job doing just about anything. The problem was that many of these ninja rockstar 10x efficiency evangelists didn't really work with Git well and didn't really value the command line. Linux knowledge was very minimal.
I worked for four startups, and found that only one of them had ONE employee who had a solid computer science background.