This is a classic pitfall. Every Go developer knows that using this assignment is discouraged, because interfaces are structures composed of two fields. You are assigning a pointer-type value to an interface.
(_type = *bytes.Buffer, data = nil)
It seems like developers who champion Rust have a knack for making up a load of nonsense about other languages. Claude Fable knows exactly how to handle things in Go; the most recommended concurrency patterns are mastered by the likes of Sonnet, Opus, or Fable, and most of the concurrency "errors" cited in the Uber article are the sort of mistakes a Go beginner would make, some bugs are fixed on major go version too (capture loop..).
Your experience may vary, but Rust code once compile generally always works. I don't have same confidence about go or typescript. And, I don't know much rust, but I do use lot of go in my work.
There is only a shortage of scientific libraries, you can do others tasks than web development with Ruby. Ruby is great for sysadmin tasks too for exemple. Many configuration tools was developped in Ruby.
I think , you can find a lot of skills for go.
Honestly , golangci-lint and you have already a lot of integrated tools with go to improve and modernize go code.