Not to mention how good Phoenix and Ecto are. I would never think about using Go if Elixir is a suitable option.
go has go threads. elixir has the actors, futures, message passing, immutable data structures and the OTP platform. OTP is killer and gives you genservers with pubsub and the ability to have thousands of tiny stateful processors PER machine.
Its all battle tested too.
comparing go to elixir in this particular case is like comparing a piper cub to a jet liner
source: 5 years of experience building an elixir startup with realtime sync between devices over websockets as a killer feature.
Go has this too. It also has message passing (via channels). That's not to deny that Elixir/Erlang have a more developed story for IPC, process supervision and clustering.
Very personal opinion:
Go is an ugly language and I don't enjoy working in it for that reason alone.
Outside of that, I also don't like the language design for a lot of its features.
Though, admittedly, the goroutines part is not one of those choices I dislike. But the error handling pattern, generics and a few other things are super meh to me.
And everything Go does with networking and concurrency, Elixir does better.
Elixir just doesn't have the backing of a big name like Google so it doesn't have the same popularity.
And the beam networking stack is quite good, which is unsurprising given it's been in slowly evolving use for 30 years now.
In go you just don't get stuff like "trivially cleaning up associated resources with zero lines of code when your socket gets early terminated by the client or a backhoe cuts the network in to the data center"
Would have loved to have seen a section devoted to what feedback you heard, what the team member's poor experience was, and how you felt confident that Elixir & Phoenix would solve those problems.