After being fully invested in Go for close to 6 years and working at primarily Go based shops...I want to disagree with this headline.
Folks new and old to Go still write data-race riddled code unless they put in the extreme mental effort and care into avoiding data-races. Also, if they write good unit tests that help them spin through the code they can often double-down on ensuring their code is correct by using the race-detector.
Even if you do all of this...sorry but there’s no guarantees.
In my opinion this is why we are seeing languages like Rust invest heavily in something like the borrow checker...to prove at compile time when you have racy code.
If Go had a compile time ability to do this it would be really amazing.
Yes, this all my experience and opinion.