It really depends on which layer of the software stack you are working on. The closer you come to the hardware the more mathematical understanding you will need, e.g. writing a compiler.
But it's also very true that if you work with high level languages like C# and python you can perfectly get your job done with just using a clever library that hides the underlaying mathematical problems.
I also totally agree that communication, empathy and writing skills are extremly important for software engineers. Coding is always an act of communication, be it with your client, with the machine or with your fellow co-workers.