The bigger question in my mind is why you got into so many situations with failing startups- were they doomed to fail and you just didn't have the business sense to see that? In either case, it sounds like you are still only a few years out from graduating, you get a lot of slack for inexperience in my eyes.
Of course I can't speak for everyone, some guy that has been at MegaCorp for 17 years since he stepped out of school may not be as kind, but you probably don't want to work for him anyway.
Regardless though, your latest tenure is 3 years. The trend is in the right direction. If your current situation is bad, now is almost certainly the right time to make a jump- I can tell you first hand, the quality of people we are seeing right now is substandard, if you know what you are doing, you will stand out. This is a great time to be picky not only about the role you accept, but the company as well- an established business that you know will be around in 3-5 years and hopefully thriving is particularly important. Also consider that we are definitely at the top of an economic cycle, the next recession is on the horizon and the weaker companies will feel the pain.
Yeah, things might get better here. It does look like their 5 year plan is going more or less in the right direction. But am I willing to wait 5 years with stagnate or no growth (in addition to the three years of no growth I've already endured) with a company that's proven multiple times it's unwilling to loosen its purse strings for just about any reason? I don't think it's worth it, and many other employees didn't either.
I'm mainly only still here because I keep having things happen in my personal life that makes it inconvenient to change jobs at that point (For example I recently bought a house. Mortgage lenders tell you not to quit your job until the closing date for that). And the one benefit of losing the office is we get to work 100% remotely, so I'll do that for a bit while figuring out what I want to do next.
> The bigger question in my mind is why you got into so many situations with failing startups- were they doomed to fail and you just didn't have the business sense to see that?
I think you answered that yourself in the prior paragraph. Joining a company is like rolling the dice. As an employee, you generally have no idea which ones will succeed and which ones will fail. You pick a horse and hitch to it. I look back to my friends in undergrad. We were about as smart and hard working as each other, but comparatively where we are in our careers today seems largely based on how lucky we got in picking which companies to work for.
The 6th is where I'm currently at, and it's another job where they were doing really well, got purchased by a large corporation, and then the corporation started slashing and burning to save money. I've somehow survived here for 3 years, survived multiple layoffs, and we're down to just a handful of developers (and losing our office here in a few weeks, yay), and part of the reason why I've stayed is I know the last 5 jobs look bad to people who look at resumes, even though I was laid off or terminated from each one after the company or department fell apart, and I apparently just keep picking companies just before they fall on tough times. Meanwhile I've had to endure them getting rid of bonuses, freezes on raises, multiple reductions in benefits, etc. at this current job as I wait for a good time to jump ship for greener pastures.
Just so I have one stable looking job on my resume.
It can be difficult sometimes to stay with companies even when you try to. I have a bad habit of wanting to stay until a project is completed and out the door, but that's also when they're most likely to make layoffs.