Working asynchronously: write everything down and avoid creating bottlenecks. You want everyone to always be able to continue with their work. So if you write everything down (such as we do in our handbook at about.gitlab.com/handbook), people can consult that instead of having to rely of tribal knowledge.
Realizing that working remotely requires work: It's a very different way of working and you have to actively think about how to communicate, how to build teams, etc. So instead of relying on those micro-communications you have when you're together in the office (e.g. 'watercooler talk'), you have to create opportunities to bond and share. Working remotely means not doing the exact same things but separated by more air, it means working differently so everyone can be more productive and have a more flexible life.
I 100% agree with what Job said in his response. From my side I can add only minor tips:
Push code frequently, write status update in the issue tracker daily etc. It helps your colleagues know what you are working on without any direct communication.
Provide an async way for colleagues to book meetings with you. For example I use "calendly" tool which allows people book events in my calendar on free time.
Measure your results, not time spent. If you are doing very well, reward yourself with some free time.