Async by default: a working manifesto
How we run engineering teams where the default is written, not synchronous — and what that buys.
The phrase "async by default" gets thrown around enough that it's almost lost meaning. Here's what it means at Upaok, concretely:
The default mode of communication is written and reviewable. Synchronous calls are intentional, scheduled, and serve a purpose that writing can't.
That sentence does a lot of work. Let's unpack it.
"Default" is the operative word
Async by default does not mean "no calls." It means: if you don't think about it, what mode does your team end up using? In most teams the implicit default is Slack DMs and quick calls — which means engineers in non-overlapping timezones are silently second-class citizens.
Flipping the default flips that.
The four rules we run by
1. Decisions go in a written doc, not a call
If a decision matters enough to discuss for 20 minutes, it matters enough to be in a doc. The call can happen — but the outcome lives in a written ADR, ticket, or RFC that future-you can find.
2. Status updates are written, posted, and skimmed
We don't run standups in 90% of our pods. The standup ritual is replaced by a posted-by-end-of-day async update: what I shipped, what I'm doing tomorrow, what's blocking me. Anyone can scan the whole team's status in 60 seconds.
3. Calls have a written agenda — or they don't happen
A call without an agenda is a thinking session that someone else is paying for. Calls at Upaok have a one-line agenda in the calendar invite. If we can't write the agenda, we cancel the call.
4. Notes happen during, not after
Notes are the artifact of the call. We write them in real-time, in a shared doc, visible to everyone on the call. Decisions are bolded. Action items have owners and dates. The doc is shareable to people who couldn't attend.
What we get for it
When async is the default:
- Hiring opens up to anyone, anywhere. We don't lose a great engineer because they're 9 hours offset.
- Onboarding speeds up. New hires read the back-catalog of decisions, sprint plans, and demo videos.
- Decisions don't evaporate. Six months later, you can find why something was built a particular way.
- Calendars stay light. Most of our engineers' calendars are 70%+ empty, and they ship more than they did at their previous job.
What we give up
We give up the speed of "let me grab you for two minutes". Sometimes that's a real cost — async resolution of a small question can take 4 hours. We accept that as the price of the model.
We give up the social warmth of in-person hallway conversation. We replace it deliberately — quarterly in-person weeks, weekly social calls, written rituals — but it's not free, and we don't pretend it is.
The closing thought
Async by default is not a dogma. It's a choice about which problems we'd rather have. We'd rather have a team where written communication is excellent and the geographic ceiling is gone, even if it means giving up the speed of real-time conversation.
For us — and for most of our clients — that's been a good trade.
All posts