Running Effective Engineering Meetings

CareerEngineeringMeetings
Share on LinkedIn

The average engineer spends 10–18 hours per week in meetings. Half of that time produces no decision, no action item, and no information that couldn't have been a three-paragraph doc. I've sat in hour-long "syncs" that ended with "let's take this offline" — meaning the meeting had no purpose. Effective meetings are short, have agendas, produce outcomes, and respect that every attendee's time is worth more than the organizer's convenience.

Meeting types that earn their time

Meeting Duration Purpose Output
Standup 15 min Coordination Blockers assigned
Design review 45 min Decision Approved/revise doc
Retro 60 min Improvement 2–3 action items
1:1 30 min Growth + unblock Follow-ups noted
Incident review 60 min Learning Action items + doc

Everything else should justify its existence quarterly.

Standup that doesn't suck

Format: Round-robin, timed.

Yesterday: Shipped payment retry (PR #412). 
Today: Starting webhook signature verification.
Blockers: Need API rate limit decision from PM.

Rules:

For distributed teams, async standup in Slack/Linear works better than a video call where half the team is muted doing other work.

Design review structure

Before the meeting:

  1. Author publishes design doc (problem, options, recommendation)
  2. Reviewers comment async for 24 hours
  3. Author addresses comments, updates doc

During the meeting (45 min):

The doc is the artifact. The meeting is for disagreement and decision, not presentation.

Retrospectives that change things

Bad retro: "what went well? what didn't?" → vague answers → same problems next sprint.

Good retro structure:

  1. Data first: Metrics (incidents, velocity, escaped bugs) — 5 min
  2. Individual write: Everyone writes 1 keep, 1 change, 1 try — 5 min silently
  3. Discuss top themes: Vote on items — 20 min
  4. Action items: Max 3, each with owner and due date — 10 min
  5. Review last retro actions: Did we do them? — 5 min

If retro action items never get done, the team stops participating. Follow through or stop having retros.

Meeting hygiene

Every meeting invite needs:

During:

After:

Killing unnecessary meetings

Audit quarterly:

Declining meetings is a skill. "I don't think I can contribute to this — can you share notes?" is professional.

The async alternative

Replace meetings with:

My team's rule: if a meeting could have been a doc, the person who called the meeting writes the doc next time instead.

Meeting types and their formats

Different meetings need different structures — one format doesn't fit all:

Meeting type Duration Required prep Output
Decision meeting 30 min Written proposal circulated 24h before Decision recorded in doc
Brainstorm 45 min Problem statement shared Ideas captured, owner assigned to synthesize
1:1 30 min Agenda from both parties Action items, not status recap
Incident postmortem 60 min Timeline doc pre-written Action items with owners and dates
Status sync ❌ Cancel Written update instead

Decision meetings without pre-circulated proposal default to the loudest voice winning. Require written context before scheduling.

The written decision record

Every decision meeting produces a record:

## Decision: Migrate from Postgres to CockroachDB

**Date:** 2024-12-27
**Participants:** alice, bob, carol
**Decision:** Proceed with CockroachDB for new services; existing Postgres unchanged
**Rationale:** Multi-region requirement for EU expansion; CockroachDB native geo-distribution
**Dissent:** bob preferred Vitess — noted, not blocking
**Action items:**
- [ ] alice: POC by 2025-01-15
- [ ] carol: cost model by 2025-01-10
**Review date:** 2025-02-01

Decisions without records get re-litigated. The doc is the decision — the meeting was the discussion.

Remote meeting hygiene

Remote meetings fail differently than in-person:

Meeting norms (team agreement):
- Agenda required 24h before — no agenda, meeting cancelled
- Hard stop at scheduled end — remaining items become async
- Action items in shared doc during meeting, not after
- "Could this be a Slack thread?" asked before scheduling

Failure modes

Production checklist

Resources

Frequently asked questions

How long should a daily standup be?

Fifteen minutes maximum for teams under 10 people. Each person shares: what they did, what they're doing, blockers — in under 90 seconds. Standups are for coordination and blocker surfacing, not problem-solving. Take discussions offline.

What makes a design review meeting useful?

A written design doc shared 24 hours before the meeting, a clear problem statement, 2–3 proposed approaches with tradeoffs, and specific questions for reviewers. The meeting discusses decisions, not discovers the problem. Outcome: approved direction or explicit list of revisions needed.

When should a meeting be an email or doc instead?

If the goal is information sharing without discussion, use async. Status updates, announcements, and FYI items don't need synchronous time. Meetings are for decisions, brainstorming with real-time back-and-forth, and relationship building — not reading slides aloud.

Hiring a senior Android / Flutter engineer?

I architect and ship production mobile software — Kotlin, Jetpack Compose, Flutter — for robotics, EV infrastructure, fintech, and real-time systems. Open to remote roles in Europe and the US.

Get in touch →