The tech jobs I've worked have ended roughly thus:
Company went under
Short-term contract for specific task
Department downsized
Short-term contract for specific task
Department downsized
Short-term contract for specific task
Short-term contract for specific task
I have never quit a job since finishing school. I'd have loved to stay on at several of those places for the rest of my career, but that's not how most of the industry works these days. If you've been able to stay at a job you love for 19 years, you're very lucky.
Even with quick promotions, you are much more likely to end up with a higher salary by moving jobs every 1.5-3 years. I'm 30 and the longest I've been at a job is 21 months. It's never been brought up as a negative and I've got plenty of experience across multiple business domains and companies.