An article hit the front page this morning about when to leave an organization, particularly the author's experience with AWS.
But I'm not sure if anyone at AWS needs a bulletin that things have changed. It's obvious because their growth was so high in the early years, and there was more focus on shipping. Like all organizations they will inevitably shift into managing their success.
I'm struggling with my current job, and the problem for me is that we never have had that explosive growth. We have had slow but consistent growth over five years. That growth has very little to do with our founders or executives' competence, who have mostly flailed around or been AWOL. But we attract a highly dedicated community and quite a few excellent engineers, amidst a lot of insane mismanagement. I often compare it to early Twitter, which grew mostly despite its management.
When should I leave?
Negatives: Options are probably meaningless now; not learning very much except how to deal with our own mounting tech debt; perennially incompetent management.
Positives: I like my co-workers; job does no harm to the world; pays okay; 100% remote; very few meetings; low standards for productivity mean I have great work/life balance. Also I'm significantly older than most working programmers and at least here, I don't suffer ageism.
Wildcards: starting in 2024, some of the incompetent management has finally been removed and we've hired some people with experience at tech giants. Will that be good or bad? Totally unclear.
"Pays okay; 100% remote; very few meetings; low standards for productivity mean I have great work/life balance" seems like a perfect workplace.
What you need is probably a project outside of work to challenge you. I built my own company 13 years ago as a side project (I still run it up to this day as a side project) because I was a Mobile developer and Would like to keep doing Web development.
Today, I am having fun with my Open-source project https://github.com/mateusfreira/nun-db. When I have too many meetings or fight fewer coding challenges in my work, writing my own distributed database keeps me fresh and challenged. With it, I learned Rust and also distributed systems, which made me read books and papers that would never be needed for my normal work.
I see that as growing, and it has brought me great opportunities. Times these side projects become companies, and you make money; times, they bring job opportunities that you would not have otherwise.
You should leave a company when your growth is faster and more than the company can take in. Meanwhile, use the low pressure to go after other challenges personally; that is my way of dealing with it.