I have been working remotely as a software engineer since 2013 and have collected a few opinions about how to optimize a remote team for both happiness and productivity.

Solving Remote Problems

A lot of remote teams hit blockers that they wisely deduce are rooted in their remote-ness, but they only pursue solutions that are IRL in scope. Don't solve remote problems with non-remote solutions!

Overcommunicate As a Rule

Not all humans have personality structures that lend themselves to thriving in a remote culture. Even those who do, still have to work for it. That said, those who exist within some approximation of thriving tend to exhibit a characteristic that I refer to as "overcommunication as a rule".

Slack As Shackles

This is nothing novel and yet it bears repeating. Slack and cohort are hugely powerful, but without careful application and intent, can quickly become overwhelming and emotionally exhausting.

No Mind-Reading

As your remote teams scale, there can be a temptation to promote censorship due to how many eyes are privvy to the communications. Don't do this! Soon this becomes unruly, promotes lack of transparency and will eat the team from the inside out.

Get the Best Parts Right, First

If you are going to norm anything, be certain to norm the best parts of remote work. Encourage location sampling for team members (call quality will take a hit, plan for that), optimize notifications EARLY, decide which things should NOT live in Slack, etc.

Default Camera On

Cameras on for any and all crucial conversations and when you notice misunderstandings could be brewing on critical decision points