Here is my rough timeline:
1st Job (Company A): ~2.5 Years
2nd Job: ~5 Months
3rd Job (Company A again): ~2.5 Years
4th Job: ~3 Months
5th Job: ~6 Months
6th Job (FAANG): 1 Year
7th Job (Current): 1.5 Years
From 2 -> 3, Company A decided they regretted letting me go and offered to hire me back as a manager with a team under me. Not ideal to leave after only 5 months in the new role but how could I say no?
In the 4th job, I was misled as to the nature of the role and it was a toxic work environment. I left pretty quickly after realizing the situation, no regrets honestly, and found job 5 pretty shortly for a huge pay bump anyway!
From 5 -> 6, I didn't want to leave but I had an opportunity to go work in FAANG which was 2x higher than my new pay (and for personal reasons I could really use it). Plus the experience/name on my resume, seemed like a great move.
From 6 -> 7, I got caught up in FAANG layoffs in early 2023 (my whole division evaporated, unlucky).
I'm moderately happy in my current role, and I will have no problem staying here for a good while longer, but how long should I ideally stay in the job before I lose the reputation as a job hopper? How should I frame the whole thing to employers? Usually when I explain the individual situations it becomes more understandable, but that doesn't stop very negative "first looks".
So if you really want to balance it out... stay where you are for another couple years.
That being said, who cares what people think? Maybe the search will be tough with your history, but it is the end that matters. As long as you do get through the hassle of looking for something, and find somewhere that makes you satisfied with your work, none of the people who disliked your history will be relevant to your reality.