Chatrooms for each team, but visible to other teams. And a culture of encouraging technical discussion to be summarized or at least alluded to in the public chat. I'm sure this doesn't scale, but for a company of <20 developers, this worked amazingly.
It was also great for finding answers to silly questions without having to bug someone.