I got my first programming job right out of university in 2014. I worked full-time for 5 years before taking a sabbatical, and then going freelance in 2021.
Freelancing offers me a cadence of client work followed by unbooked time. I usually work with long term clients so a bit of downtime after a contract ends is very welcome.
This allows me an opportunity to upskill. It’s also when I blog a whole lot more about stuff I’ve learned. When I worked a full-time job, I wrote a grand total of 1 blog post in 5 years.
The job was, as most tech jobs, fairly relentless and repetitive. Constant 2-week sprints delivering pretty standard stuff with the odd interesting project thrown in. After a couple of years of getting to grips with the basics, I plateaued as a programmer. To mix two metaphors, my experience was like running on a hamster wheel inside a pigeon hole.
I worked on other stuff outside the job to keep up to date with the latest tech, but all it did was contribute to burnout. Since then, I maintain a very strong work-life boundary. Programming is my job, not my life. This separation is healthy for me.