As others said, you're on call 24/7, but you can make it easier on yourself. My philosophy:
- Keep everything as simple as it can sensibly be. Obviously this will depend on your application but if you can, you're better off having a simple docker compose stack than a complex k8s cluster (as an example), if you don't really need it. This will make it quicker to fix and get back to your vacation when you need to.
- If you can afford it, pay for cloud hosting and other services (like backup services, Route53 domains with certificates etc). Their SRE efforts are going to be infinitely more capable and available than yours are.
- Use password managers and secure them well. Make it so that you could lose your laptop and be up and running again within 30 minutes of buying a new one.
- Keep your development process consistent and documented. I develop everything inside a Docker container and use the same application/service template for everything. Again, this makes it much faster to troubleshoot and bug fix on another machine if required. I do all my development on an EC2 instance using VSCode Remote SSH + Containers so I can connect to the same environment from any machine. This also means if I need to fix something from somewhere with spotty internet, I only need SSH access and I have access to 10Gb internet etc, so uploading new images and patches etc is not affected by my location.
All these things probably cost me a few thousand dollars a year (tax deductible) but to me they are worth it for the peace of mind and the few times I have had to fix something in a pinch, it has more than paid for itself.
For me it provides enough structure without being a super opinionated framework. It handles route and doc generation based off your models and controllers, but everything else is up to you, which is perfect for me.
You sound similar to me; although perhaps I am a few years further on in my career.
I don't think there's anything inherently wrong with what you're describing. All of my promotions/progressions in my career have come from being willing to go the extra mile and work on/learn things outside of my role. Sometimes this involves working early/late/on weekends. Unless you're a true prodigy or have an exceptional management structure around you that gives significant experimentation/learning during your normal working hours I feel this will always be the way. Either way, it sounds like you have a healthy work/life balance.
I think if you intend to have a long career in your industry (or indeed any industry) at some point you will experience burnout(s) in some form. Accept it for what it is and learn how to handle it. It may take different forms; for me I generally notice that I get distracted a lot (and get frustrated with myself for it). Sometimes the solution is time off; sometimes it's changing companies/roles (especially if you're early in your career it's likely you'll outgrow your current company/team at some point).
Much like exercise, you'll learn the signals your brain/body is giving you over time; they'll be unique to you. You'll probably get it wrong at some points to. The key is acting on those signals early. I write letters to myself about how I'm feeling in those moments, and then revisit them when I'm struggling. It's been extremely useful for remembering how I felt previously and knowing when to step off the gas.
But the short answer is no, I think you are working the right amount.
- Keep everything as simple as it can sensibly be. Obviously this will depend on your application but if you can, you're better off having a simple docker compose stack than a complex k8s cluster (as an example), if you don't really need it. This will make it quicker to fix and get back to your vacation when you need to.
- If you can afford it, pay for cloud hosting and other services (like backup services, Route53 domains with certificates etc). Their SRE efforts are going to be infinitely more capable and available than yours are.
- Use password managers and secure them well. Make it so that you could lose your laptop and be up and running again within 30 minutes of buying a new one.
- Keep your development process consistent and documented. I develop everything inside a Docker container and use the same application/service template for everything. Again, this makes it much faster to troubleshoot and bug fix on another machine if required. I do all my development on an EC2 instance using VSCode Remote SSH + Containers so I can connect to the same environment from any machine. This also means if I need to fix something from somewhere with spotty internet, I only need SSH access and I have access to 10Gb internet etc, so uploading new images and patches etc is not affected by my location.
All these things probably cost me a few thousand dollars a year (tax deductible) but to me they are worth it for the peace of mind and the few times I have had to fix something in a pinch, it has more than paid for itself.