I have noticed that a lot of startups are fully remote and hire globally, so I'm just wondering what the solution to this communication problem is.
Sometimes that's not avoidable, but if both parties recognize the situation and change styles, it can help in most situations. Provide all the relevant information in the first message; read the whole message before and while responding. Expect to not get instant feedback.
It's like writing a letter vs having a phone call.
Otherwise, have realtime sync up at the edges of the workday.
Synchronous: A single time zone is designated, and all team members adapt accordingly. Although, this can be a pain for people far away.
Asynchronous: Flexible “overlap” periods are defined where everyone must be online.
In practice, though, remote teams I've worked in just seem to understand and accept that: A) You don't need a 'call', 'quick chat' or 'meeting' over video or voice most of the time B) If you are in a remote team, there is shared acceptance that there will be A LOT of asynchronous communication and people will reply when they can or are available. C) The situation changes the more time-zones you cover. Be flexible.
Those with roles that are 'mission-critical' or 'perpetually online', are usually on call or have a phone that is always available.
A handy resource for aligning schedules: https://www.timeanddate.com/worldclock/converter.html
1) Things like code reviews should be more extensive if feedback loops are long. One should be clear whether something is blocking or not. A lot of people use (and came up with) https://conventionalcomments.org/. Personally I really like to assign someone in the States or APAC and come back the next day haben my code reviewed.
2) regular meetings are often being alternated to be friendly between different time zones. e.g. one week APAC/EMEA friendly and another EMEA/AMER. All meetings have agendas and everyone can add points, even if they cannot attend. Also all meetings should be optional.