Make conversations public by default. If you use Slack, make team channels, project channels, announcement channels etc. all public. Discourage 1:1 and private communication unless really necessary, especially for engineering topics. This single change will have an immense impact on overall company culture.
I'm at a company now where we are trying to do this but the CIO/CEO keep weighing in on EVERY conversation where they disagree with the approaach. The whole reason we are having the open conversation is for ideation and good communication but when a high level person comes along and says "well thats not the way I would do it" everyone decides to go back to 1:1s, direct messaging, and calls so as not to document anything publicly in feat of being called out by the higher ups.