You need to develop on a platform that matches what’s running in production. Production almost always uses some form of Linux, so you at least need a local VM running Linux. Then it doesn’t matter if you have Windows or Mac as your main OS, and you can use the tools you need in those platforms, but otherwise actual builds and testing should be happening on the VM.