A chaotic, overlapping pile of paper calendars and sticky notes on a desk

Pull up your team’s shared calendar. I’ll wait. What you’re staring at isn’t a schedule—it’s a crime scene. A Jackson Pollock of conflicting stand-ups, backlog grooming sessions that groom nothing, and a weekly “architecture sync” that’s been chewing on the same database index for a month and a half. We’ve mistaken motion for progress. We’ve built a culture where the default response to any ambiguity is a 30-minute blocker with 12 attendees, half of whom are silently eating lunch and praying for the sweet release of the “Leave Meeting” button.

This isn’t a rant about hating people. I like people. But the modern engineering meeting ritual is a direct assault on the mental state required to build complex systems. You cannot hold a distributed transaction model in your head in the 22-minute gap between a stand-up and a stakeholder check-in. You just can’t. The calendar is the bug, and asynchronous communication is the patch we keep refusing to deploy.

The Factory Floor in a Hoodie

Most tech companies operate with a factory mindset wearing a startup hoodie. The 9-to-5, meeting-heavy structure is a relic of manufacturing floors where physical presence was the only way to coordinate. If you’re bolting fenders onto a chassis, you need to be shoulder-to-shoulder. If you’re untangling a race condition in a microservice mesh, you need long, unbroken stretches of silence. The tools have evolved. The management reflexes haven’t.

When you book a meeting, you’re not just spending 30 minutes. You’re fragmenting the day for every engineer who has to attend, then recover. A single one-hour meeting for a team of six doesn’t cost one hour—it costs six hours of prime cognitive time, plus the hidden tax of getting back into the zone. Research on programmer productivity pegs that recovery time at over 20 minutes per interruption. Do the math on a day with three scattered meetings. You’ve effectively paid people to do nothing but context-switch.

A group of people sitting around a table looking tired and disengaged during a meeting

Meetings as a Crutch for Missing Docs

Here’s a pattern I see everywhere: a team holds a meeting to “get everyone on the same page.” The problem? The page doesn’t exist. There’s no written design doc, no updated README, no decision log. The meeting is a live, high-bandwidth, low-retention substitute for a document nobody bothered to write. It’s a group therapy session for organizational amnesia.

This is completely backwards. A well-written proposal lets people digest the problem at their own speed, leave comments, and build a threaded discussion that becomes a permanent artifact. A meeting evaporates the moment it ends, leaving behind a half-baked transcript and a vague sense of agreement that nobody can quite recall. If you can’t explain the change in a document, you don’t understand it well enough to discuss it in a room.

Async-first means writing things down. It means recording a short video walkthrough of a pull request instead of dragging everyone onto a call. It means treating your project management tool as a source of truth, not a graveyard of outdated tickets. The goal is to make information discoverable, not to hoard it until the next synchronous ceremony.

The Context-Switch Tax Is Killing Your Throughput

Engineers aren’t assembly-line workers. The work product isn’t a widget that pops off a conveyor belt every 90 seconds. It’s a fragile mental model of a complex system. Every interruption—a Slack ping, a calendar pop-up, a tap on the shoulder—shatters that model. Rebuilding it takes time and mental energy, both of which are finite and neither of which shows up on a timesheet.

I’ve seen teams with an official “no meeting Wednesday” policy whose calendars are still littered with “quick syncs” that someone deemed too important to skip. That’s like declaring a diet and then making an exception for every meal. The protection has to be absolute, or it’s worthless. Block the time. Defend it with the same ferocity you’d defend production from a rogue deployment. Because that’s exactly what’s at stake: the production of working software.

When a Call Actually Makes Sense

I’m not a zealot. There are times when jumping on a call is the right move. The rule of thumb is simple: synchronous for emotional bandwidth, asynchronous for intellectual bandwidth.

If you’re delivering tough feedback, untangling a heated conflict, or brainstorming a genuinely novel problem where ideas need to ricochet in real time, get in a room (or a video call). These conversations depend on tone, body language, and rapid back-and-forth. But these are the exceptions, not the default. A status update is not an emotional event. A bug triage is not a creative jam session. Treating them as such burns through everyone’s emotional and intellectual reserves for no reason.

Here’s a quick test: if the meeting agenda could be replaced by a bulleted list in a shared document, you don’t need the meeting. If the outcome is “we’ll discuss this further,” you didn’t need the meeting. If half the attendees are clearly multitasking, you didn’t need the meeting, and you’ve already lost them.

A person staring at a laptop screen with a frustrated expression, surrounded by sticky notes

Building an Async-First Culture Without Losing Your Mind

Shifting a team to async communication isn’t a tooling problem; it’s a trust problem. Managers who demand constant meetings are often signaling that they don’t trust the team to make progress without surveillance. The first step is admitting that if you hired smart people, you should let them work like smart people. Micromanagement is a confession of hiring failure.

Start with a brutal calendar audit. Cancel every recurring meeting that doesn’t have a written purpose and a clear decision-making framework. Replace stand-ups with a daily async check-in in a dedicated Slack channel or a tool like Geekbot. Replace status meetings with a dashboard that actually reflects the state of the work. Replace “alignment” meetings with RFC documents that people can comment on over 48 hours.

Then, protect the time. Make deep work blocks visible on the calendar and treat them as sacred. If someone tries to schedule over a focus block, the response should be a polite but firm “I’m in a deep work block; can this be an async thread instead?” This needs to be modeled by senior engineers and explicitly endorsed by leadership. If the CTO is double-booked in meetings all day, the message is clear: meetings are the real work.

Writing Is Thinking, and Thinking Is the Job

One of the most underrated skills in engineering is clear writing. A well-crafted design doc, a concise pull request description, a thoughtful comment on a ticket—these are the gears that turn an async team. Writing forces clarity. It exposes gaps in logic that a fast-talking meeting can gloss over. It creates a record that outlasts the memory of the conversation.

If your team struggles with this, invest in it. Make writing a first-class skill in your hiring and promotion rubrics. Give people time to write. Review documents with the same rigor you review code. A culture that writes well is a culture that thinks well, and a culture that thinks well doesn’t need to meet constantly to figure out what it’s doing.

FAQ: The Questions You’re Too Polite to Ask in the Retro

“But what about collaboration? Don’t we lose something if we’re not in a room together?”

You lose interruptions, groupthink, and the loudest person in the room dominating the conversation. Async collaboration—through shared documents, threaded discussions, and recorded demos—gives introverts, non-native speakers, and deep thinkers an equal footing. The “something” you lose is mostly the illusion of consensus built on social pressure.

“Our project manager says we need more meetings to stay aligned. How do I push back?”

Ask for data. What decisions were made in the last 10 meetings that couldn’t have been made in a document? What percentage of meeting time is spent on status updates versus actual decision-making? If the PM can’t answer, propose a two-week experiment: replace the meeting with an async update and a single decision-making thread. Measure the output. The numbers will do the arguing for you.

“We’re a remote team across time zones. Isn’t async just a fancy word for ‘we never talk’?”

No, it’s a fancy word for “we respect each other’s time and circadian rhythms.” Async doesn’t mean never talking; it means talking in a way that doesn’t demand an immediate response. It means the engineer in Berlin doesn’t have to take a call at 10 p.m. to hear a status update that could have been a Loom video. It’s not about silence; it’s about decoupling communication from attendance.

“What’s the one meeting we should absolutely keep?”

Keep the meeting where you decide which meetings to kill. Do it quarterly. Put every recurring meeting on trial. If it doesn’t have a written charter, a clear decision-making mandate, and a measurable impact on the product, it’s dead. No appeals. This is the only meta-meeting that earns its keep.

Stop Treating the Calendar Like a To-Do List

The goal isn’t an empty calendar. The goal is a calendar that reflects intentional, high-value collaboration, not a cascade of default commitments. Every meeting on the schedule should have to justify its existence against the alternative: a well-written document, a short video, a threaded discussion. Most won’t survive that comparison.

Your team’s best work won’t happen in a conference room. It’ll happen when someone has four uninterrupted hours to hold a complex system in their head, trace a bug to its root, or design an elegant abstraction. Protect that time like your product depends on it. Because it does.