It's possible to have data races if you ignore the language conventions[1]. But even then, Go has provided an effective data race detection tool since 1.1: https://go.dev/blog/race-detector
I've been using Go on a large codebase for a number of years, and I haven't found data races to be a problem in practice.