Too bad you need external tools anda lot of boilerplate that you must remember to enforce to achieve this, because it's an after thought and not a language feature.
And there's 7-8 different annotations to mark nullability, all slightly different in some detail.
As an Italian, I say that the top reason is not schooling or scarce attitude, it's humiliating salaries.
You work hours and hours and get peanuts for your efforts. While your employer buys the 5th Porsche.
I come from one of the richest regions, yet as an IT professional I felt appreciated only when I started working abroad. No matter how much I tried, most job offers in Italy are ridiculous.
> I've put in countless hours of work every day (70-90 hrs), being on-call almost 24/7, sometimes for straight 7 days for months despite only getting paid on a salary basis on 40 hr work weeks; being a loner helps with working long hours.
Many of your feelings come from here. You need a healthier work -life balance, where you may allocate some time for other things other than the rat race.
You're a person, before than a coder. Your work shouldn't be your sole source of self-esteem and content, in your life.