Great advice from the parent comment.
I'll throw these random ideas in along with it:
- Work/life balance is something you enforce on your own. Learn to get over fear of being fired (an emergency fund helps) and simply refuse to follow unspoken toxic overwork culture. I have found that more likely than not, nobody actually notices that you aren't working as hard as all the 10x developers that have no life and the people who imitate them.
- On the topic of "field versus company," another aspect to keep in mind is that the actual job of software development is very different in different industries. Moving to the same job in a different industry may feel a lot different and have much different norms regarding workload, culture, compensation, etc.
- Don't forget that desk jobs in software are still some of the best work you can do overall. Not only is it a desk job where you are generally treated like an adult, it's one of the higher paying ones at that. Think very hard about the grass on the other side of that fence. Your example of aviation mechanic sounds like it could be ripe for shit work conditions (physical job, being out in the elements, having to go on location physically 100% of the time, working for extremely low-profit-margin companies, I would think that it's only decent if it's got a strong union and that in itself will be a barrier for you getting into it)
- Consider how you evaluate companies during job interviews. Focus on finding out if the company, manager, and team is the right fit for you. Spend less headspace on trying to impress the company and make sure they are impressing you. (I am not sure if this is true but I think a lot of candidates who do this in interviews are perceived as knowing what they're doing because they are expressing a very clear idea of what they want out of the role)
- There are other ways to use software developer skills that aren't a software development job directly. One example is working on the customer side in pre-sales or post-sales.