At work we have a monolithic repo containing Java, Go, Python, etc, organized like this:
Java //src/com/yext/..
Go //gocode/src/yext/...
GOPATH is set //gocode. .gitignore allows us to track only our code under the GOPATH using this snippet: /gocode/bin/
/gocode/pkg/
/gocode/src/*/
!/gocode/src/yext/
We use glock[1] to sync dependencies across the team, without having to check them in.The whole thing works very well at 50 developers and ~100 dependencies.