I will be as practical as possible and give you some ideas that you can accomplish in the short term of period if you are practical and curious to know more!
-
SOLID
Solid in Go takes a different understanding, I highly suggest watching this talk of Dave Cheney to get an idea; https://www.youtube.com/watch?v=zzAdEt3xZ1M&t=3s&ab_channel=GopherConUK -
high quality code, which passes any code review
it takes time to master things even though learning Go is dead simple. It is OK to take time and read everyone else’s code and practice on your own. Keep in mind, I am not suggesting leetcoding or fast paced competitive programming to improve on this. It is purely based on reading more and writing more and getting more feedback. -
respecting idiomatic soft rules & respecting the conventions & norms of the repo I am contributing to
For the conventions and respecting idiomatic rules, I suggest reading the Brian W. Kernighan’s Go programming language book.
I also suggest watching Mat Ryer’s and Kat Zien’s, Mark Bates’ talks. Youtube is your friend to get opinions and idiomatic rules brought by the community
https://www.youtube.com/watch?v=cAWlv2SeQus&ab_channel=GopherConUK
https://www.youtube.com/watch?v=oL6JBUk6tj0&t=2289s&ab_channel=GopherAcademy
https://www.youtube.com/watch?v=KkF5qSM5vX4&ab_channel=SPACE -
passing most linters: like all error results should be checked, unused public fields should be private, etc
I can suggest golangci-linter for this and I highly suggest for you to come up with your own configuration. For example, this is my configuration for the set of linters I use; https://gist.github.com/MrWormHole/250a8a1f78ca17c059b8ce075bbc28ec