Amateur spaghetti code, even in a good language like Go, will not scale, by definition.
Certain design decisions for achieving scalability should have been adopted from the day one. Basically, it is all the principles behind FP and Erlang - share nothing, in the first place.
Scalability comes from being pure functional. This is the main conclusion from last 30 or 40 years of CS research.
Stateless and share-nothing applies to protocols and services too.
This is why so many failed with so called micro-services - only stateless will work.
Things of the scale of Ethereum require deep CS knowledge. Just being overconfident and too cocky is not enough.