Art, culture, and the conversations that matter.

Category: Default (page 3 of 12)

Why Your Standup Is a Waste and Your Slack Is a Graveyard of Half-Truths

The Meeting Industrial Complex Has Eaten Engineering

I once sat in a sprint planning session that dragged on for four hours. Four. Hours. We weren’t designing a Mars rover. We were deciding how many story points to assign a button color change. By the end, two engineers had their cameras off and were probably doing actual work, one was locked in a semantic debate about the definition of “medium” versus “large,” and the scrum master was drawing overlapping circles on a virtual whiteboard like a cult leader explaining the afterlife. The button shipped three weeks late anyway.

This isn’t a one-off horror story. It’s the standard operating system for most engineering teams. We’ve built a culture where the meeting is the unit of progress, and it’s suffocating throughput, morale, and the very reason most of us got into this field: to build things, not to talk about building things.

The Synchronous Tax

Every meeting carries a hidden cost that nobody puts on the balance sheet. It’s not just the 30 minutes blocked on your calendar. It’s the context-switching penalty, the shattered focus, the mental overhead of preparing to look engaged while secretly hoping nobody asks you a question you can’t answer without three more browser tabs. For a team of six engineers, a one-hour meeting isn’t one hour. It’s six hours of productive time vaporized, plus the 15-20 minutes it takes each person to rebuild the mental model they had before the interruption. That’s a full workday. Gone. In exchange for a status update that could have been a three-line Slack message.

Managers love meetings because meetings feel like work. You can point to a calendar packed with colored blocks and say, “Look at all the collaboration happening.” But collaboration isn’t a spectator sport. The best collaboration I’ve ever seen happened in a GitHub pull request thread at 11 p.m., with two engineers arguing about edge cases in a database migration. No facilitator. No timer. No icebreaker about what kind of pizza you’d be.

Async Should Be the Default, Not the Backup

Here’s a radical idea: treat synchronous communication as a last resort, not the first move. The default should be written, persistent, searchable communication. Think RFCs, design docs, detailed PR descriptions, and yes, Slack messages that are more than a thumbs-up emoji. When you write things down, you’re forced to clarify your own thinking. You can’t hide behind nodding and saying “makes sense” while secretly wondering if you left the stove on. Written communication scales. It respects time zones. It lets people think before they respond, which is a wildly underrated feature of human interaction.

I’ve seen teams try to fix meetings with better agendas, stricter timeboxes, or a talking stick. That’s like putting a spoiler on a car that’s already on fire. The problem isn’t the meeting structure. The problem is the meeting. If the information can be conveyed without real-time verbal back-and-forth, skip the call. Write it down.

The Art of Writing Things Down Like a Grown-Up

Most engineers are terrible at writing. Not because they can’t, but because they’ve been conditioned to think writing is something you do after the real work is done, like documentation or post-mortems. That’s backwards. Writing is the work. A well-structured design doc prevents more bad code than a thousand code reviews. A clear, concise project update eliminates the need for a status meeting entirely.

Here’s what good async communication looks like:

  • Decisions are recorded with context. Not just “we chose PostgreSQL,” but “we chose PostgreSQL because the team already knows it, it handles our expected write load, and the managed offering fits our budget. We considered DynamoDB but rejected it due to complex query patterns.”
  • Status updates are pull, not push. A dashboard or a weekly written digest that people can read when they need to, not a meeting they’re forced to attend at 9:15 a.m. like a hostage situation.
  • Discussions happen in the open, in threads. Not in DMs, not in hallway conversations, not in a “quick sync” that excludes the one person who actually knows the answer.

Meetings You Can Kill Right Now

Start with the obvious corpses. The daily standup where everyone recites what they did yesterday in a monotone while staring at Jira. Replace it with a Slack bot that posts a thread every morning. People reply with bullet points. Done. You just saved 2.5 hours per person per week. The sprint retro that’s really just a group therapy session with no action items. Replace it with a shared document where people can add kudos, gripes, and proposals throughout the sprint. Discuss only the proposals that need discussion, async, and then vote.

The “alignment” meeting that exists because two teams don’t trust each other. This one’s trickier because it’s a people problem, not a process problem. But the fix is still written communication: a shared RFC process, a public decision log, and a cultural norm that if it’s not written down, it didn’t happen. Trust is built through transparency, not through forced face time.

When You Actually Need to Talk

I’m not saying you should never talk to another human. Some things need real-time conversation. Brainstorming sessions for genuinely novel problems, where the ideas are too half-formed to write down. High-stakes technical debates where diagrams need to be drawn and redrawn in real time. One-on-ones between managers and reports, because those are about human connection, not information transfer. And yes, the occasional team hangout, because you should actually like the people you work with.

But these should be the exception, clearly labeled, and treated as a deliberate choice. The default invitation should be: “Here’s a document. Read it, comment on it, and we’ll only meet if there’s unresolved conflict.” If you can’t articulate the purpose of a meeting in one sentence without using the word “align,” cancel it.

The Cultural Shift

Moving to async-first isn’t a tooling problem. Slack, Notion, Linear, GitHub—they all handle async workflows just fine. The problem is cultural. It’s the manager who feels useless if they’re not facilitating. The engineer who equates visibility with verbal participation. The organization that rewards “being in the room” over shipping working software.

Fixing this requires leadership to model the behavior. If your CTO sends a weekly written update instead of holding an all-hands, people will follow. If your team lead responds to questions with links to documents instead of scheduling a call, the norm shifts. And if you, as an individual contributor, start writing things down and politely declining meetings that lack an agenda, you’ll be surprised how quickly the culture adapts. Most people hate meetings. They just need permission to stop.

FAQ

Won’t async communication make it harder to build team rapport?

Only if you believe rapport is built exclusively through forced small talk in standups. Real rapport comes from working together effectively, respecting each other’s time, and occasionally sharing a meme in a Slack channel. You can still have virtual coffee chats or team retreats. Just don’t confuse socializing with status reporting.

What if someone doesn’t read the async updates?

Then they’re not doing their job, and that’s a performance issue, not a communication failure. If a person can’t be bothered to read a document that’s directly relevant to their work, a meeting won’t fix that. It’ll just waste everyone else’s time while that person nods along.

How do we handle urgent issues if we’re async-first?

Urgent issues are the exception that justifies synchronous communication. If production is down, you get on a call. If a decision is blocking a release, you escalate. Async doesn’t mean slow. It means deliberate. You can still have a “break glass in case of emergency” protocol. Just don’t treat every sprint planning session like a production outage.

The Bottom Line

Your calendar is not a scoreboard. The number of meetings you attend is inversely correlated with the amount of work you actually ship. The best engineering cultures I’ve seen treat meetings like a necessary evil, not a virtue signal. They write things down. They default to asynchronous. They respect the fact that the best code is written when nobody is talking to you.

So here’s my advice: block off four hours tomorrow morning. Put your Slack on Do Not Disturb. Close your email. And build something. Then write a two-paragraph summary of what you did and post it in a public channel. Congratulations, you just held a meeting with your entire team, and nobody had to wear pants.

A person working alone at a desk with a laptop, notebook, and coffee, representing focused asynchronous workA group of people in a meeting looking bored and disengaged, symbolizing unproductive synchronous meetingsA person writing in a notebook with a laptop and coffee, representing deliberate asynchronous communication

Why Your Standup Is a Status Page and Your Sprint Planning Is a Support Group

I sat through a meeting last week that was so long my smartwatch thought I’d died. Two hours of screen-shared Jira, the PM dragging tickets around like a toddler with refrigerator magnets. I muted, made a pour-over, and came back to find them still debating whether something was a 3 or a 5. Nothing had changed except my blood pressure and the temperature of my coffee.

This is the state of engineering culture in most shops. We’ve confused motion with progress. We’ve built a cathedral of ceremonies around the actual work and then act surprised when nothing ships. The people aren’t the problem. The problem is the synchronous-first, meeting-glutted operating system we’ve all accepted as normal. It’s broken. The fix is simpler than you think: treat meetings as a bug, not a feature.

The Meeting Industrial Complex

Walk into any mid-sized tech company and you’ll see the same disaster. Calendars so packed with colored blocks they look like a Tetris board mid-collapse. Engineers who carve out “focus time” from 6 AM to 9 AM because that’s the only window not colonized by standups, retros, grooming, sprint reviews, and the mysterious “sync” that has no agenda but somehow runs 45 minutes. We’ve created a professional class whose primary job is attending meetings about the work they can’t do because they’re in meetings.

This isn’t a blanket rant against meetings. A tight, well-run meeting with a real decision to make and the right people in the room is a beautiful thing. It’s a high-bandwidth, low-latency protocol for resolving ambiguity. The trouble is, most meetings aren’t that. They’re status broadcasts. FYI delivery mechanisms. A manager’s anxiety projected onto a calendar invite. And the cost isn’t just the 30 minutes on the schedule. It’s the context-switching tax, the mental ramp-up and ramp-down, the fragmentation of a day into slices too small to hold a real thought.

The Real Cost of Synchronous-First Culture

Let’s talk about context switching, because it’s the silent killer of engineering productivity. Research out of UC Irvine found it takes an average of 23 minutes and 15 seconds to get back into deep focus after an interruption. If you’ve got a 10 AM standup and an 11 AM design review, the block between them is effectively useless for complex problem-solving. You spend 15 minutes winding down from the first meeting, 15 minutes checking Slack and email, and then you’ve got maybe 20 minutes of shallow work before you need to mentally prep for the next one. Multiply that across a week, and you’ve lost entire days to the seams between meetings.

But the damage goes deeper than lost time. Synchronous-first cultures reward the wrong behaviors. They reward people who are good at thinking on their feet, who can sound smart in the moment, who dominate conversations. They punish the quiet thinkers, the people who need to sit with a problem, the non-native speakers, the introverts, the folks who do their best work in writing. You end up optimizing your team for performance art instead of engineering. The loudest voice wins, not the best idea.

There’s also the time zone problem. If your team is spread across more than two time zones, synchronous meetings are a tax on someone’s personal life. The engineer in Berlin has to stay late. The engineer in San Francisco has to wake up early. The engineer in Bangalore is dialing in at 10 PM. You’re burning people out not with work, but with the logistics of talking about work. It’s absurd.

What Async Actually Looks Like

Asynchronous communication isn’t just “fewer meetings.” It’s a deliberate practice of writing things down, sharing them in a persistent medium, and giving people time to read, think, and respond. It’s treating communication like code: versioned, reviewable, and open to comment threads. The tools are simple. Documents instead of presentations. Threaded discussions instead of round-robin status updates. Recorded demos instead of live walkthroughs.

Here’s a concrete example. Instead of a daily standup where ten people spend fifteen minutes each morning reciting what they did yesterday, you use a Slack channel or a GitHub Discussion. Everyone posts their update by 10 AM in their own time zone. The update includes what they accomplished, what they’re working on today, and any blockers. If someone has a blocker, they tag the person who can help, and that conversation happens in a thread. The whole thing takes five minutes to write and zero minutes of synchronized time. The information is searchable, linkable, and doesn’t evaporate the moment the meeting ends.

Design reviews go the same way. Instead of booking a conference room and projecting Figma mockups while people struggle to stay awake, you record a five-minute Loom video walking through the design decisions. You post it with a written summary and a link to the Figma file. Reviewers leave comments over the next 24 hours. The designer responds in threads. Decisions are documented. Nobody had to find a time when eight busy people were all free at once.

This isn’t a utopian fantasy. Companies like GitLab, Basecamp, and Automattic have been operating this way for years, with teams spread across dozens of countries. Their internal handbooks are public. Their processes are transparent. They ship real products. The async model isn’t just viable; it’s a competitive advantage. It lets you hire the best people anywhere, not just within commuting distance of an office. It gives engineers long stretches of uninterrupted time to actually engineer. It forces clarity of thought because you can’t hide fuzzy logic behind confident body language.

The Objections (and Why They’re Mostly Nonsense)

Whenever I bring this up, the objections roll in like predictable clockwork. Let’s address the greatest hits.

“But we need real-time collaboration for creative work!” No, you need real-time communication for certain types of creative work, and that’s fine. Pair programming, brainstorming sessions, and crisis response all benefit from synchronous interaction. The key is to make those the exception, not the default. Schedule them intentionally, with a clear purpose and a hard stop. The rest of the time, let people work. The best ideas often come after a period of individual deep thought, not in the first five minutes of a whiteboard session.

“Async will slow everything down!” This is the most common fear, and it’s exactly backwards. What slows things down is the meeting itself. The scheduling delay. The time spent waiting for everyone to be available. The meeting that could have been an email but now consumes 30 minutes of ten people’s time. Async communication has lower latency for information sharing. The question isn’t “how fast can we get everyone in a room?” It’s “how fast can we get the right information to the right person so they can act?” A well-written document or a clear Slack message is faster than any meeting invite.

“We’ll lose team cohesion and culture!” Culture isn’t built in meetings. It’s built in how decisions are made, how conflicts are resolved, how people treat each other. If your team culture depends on seeing faces in a grid every morning, you don’t have a culture; you have a hostage situation. Async teams build culture through deliberate practices: well-maintained documentation, thoughtful code reviews, occasional in-person or virtual social events, and a shared commitment to clear, kind communication. The best culture I’ve ever experienced was on a fully remote, async-first team where everyone wrote like they were trying to be understood by someone reading six months later. That’s respect.

“But my manager needs to see that I’m working!” This is the quiet part said out loud. Many meetings exist because of a fundamental lack of trust. If a manager can’t tell whether an engineer is productive without watching them talk about productivity in a daily circle, that’s a management failure, not a communication failure. Output should be visible in the work itself: commits, pull requests, documentation, shipped features. If you need a meeting to prove you’re working, you’re not measuring the right things.

The Migration Path

You can’t flip a switch and go fully async overnight. The habits are too ingrained, and the organizational scar tissue from years of meeting culture is thick. But you can start carving out async spaces and let them prove their value.

Step one: kill the status meeting. Replace it with a written async update. Give it two weeks. Watch how much time frees up. Watch how the quality of status information improves because people can include links, screenshots, and actual detail instead of mumbling through a verbal summary while their dog barks in the background.

Step two: introduce “async-first” for all non-urgent decisions. When someone proposes a meeting, ask: “Can we handle this in a document or a thread first?” If the answer is yes, do that. If the discussion gets stuck or heated, then escalate to a focused synchronous conversation. You’ll find that 80% of what used to be meetings resolves perfectly well in writing.

Step three: protect focus time aggressively. Make it a team norm that mornings are meeting-free. Or Tuesdays and Thursdays. Whatever works. The point is to create large, contiguous blocks of time where engineers can sink into complex work without interruption. Treat these blocks as sacred. No “quick syncs,” no “can you hop on a call for five minutes?” If it’s truly urgent, it can be a Slack message. If it’s not, it can wait.

Step four: invest in writing skills. Async communication lives and dies on the quality of the writing. If your team can’t write clear, concise, well-structured documents, they’ll struggle. This doesn’t mean everyone needs to be a novelist. It means learning to lead with the conclusion, use bullet points effectively, and anticipate questions. Run writing workshops. Share examples of good internal docs. Make writing a valued skill in performance reviews.

The Deeper Problem: Engineering Culture as a System

Here’s the thing I keep coming back to. The meeting problem isn’t isolated. It’s a symptom of a deeper dysfunction in how we think about engineering work. We treat software development like a factory process that needs constant oversight and coordination. But it’s not a factory. It’s a creative, intellectual discipline where the primary unit of progress is a focused human mind solving a hard problem. Every interruption, every unnecessary synchronization point, is a tax on that mind.

The best engineering cultures I’ve seen treat communication overhead as a system performance issue. They profile their team’s time like they’d profile a slow database query. They look for bottlenecks, for unnecessary joins, for queries that could be cached. A daily standup is a full table scan of the engineering team. A sprint planning meeting is a distributed transaction with a two-phase commit that never resolves. The metaphors write themselves because the underlying dynamics are the same. Coordination is expensive. Synchronization is a bottleneck. Throughput suffers when you lock too often.

So the next time you’re sitting in a meeting that feels like a waste of time, don’t just suffer through it. Ask yourself: what is this meeting actually doing? Is it sharing information that could be written down? Is it making a decision that could be made in a thread? Is it building relationships that could be built elsewhere? If the answer is yes, propose the alternative. Be the person who writes the doc instead of scheduling the call. Be the engineer who treats process overhead as a bug to be fixed, not a ritual to be endured.

The goal isn’t zero meetings. The goal is meetings that earn their existence. Meetings that are so useful, so focused, so well-run that people actually want to attend. The rest is just noise. And we’ve all got enough noise in our heads already. We don’t need a calendar full of it too.

Frequently Asked Questions

What’s the one meeting we should absolutely keep?

Keep the meeting that makes a decision. Not the one that shares information, not the one that “aligns,” not the one that “gets everyone on the same page.” Keep the meeting where, at the end, something is different than it was at the start. A design choice is made. A bug fix strategy is agreed upon. A feature is cut. If the meeting ends and the only output is “we’ll follow up,” it should have been an email. Or better, a document with a comment thread.

How do we handle urgent issues without real-time meetings?

Urgent issues deserve real-time attention. That’s what incident response channels, on-call rotations, and emergency video bridges are for. The key is to have clear definitions of what counts as urgent. A production outage is urgent. A question about next sprint’s ticket priority is not. Most things that feel urgent in the moment are just someone else’s poor planning arriving in your inbox. Separate the signal from the noise with explicit severity levels and response expectations. P0: drop everything, get on a call. P1: respond within an hour, async is fine. P2: respond by end of day. P3: this week. Most “urgent” pings are P3s in disguise.

Won’t async communication lead to more misunderstandings?

It can, if done poorly. But so can synchronous communication. How many times have you left a meeting thinking everyone agreed, only to find out later that three people had completely different interpretations? Async communication actually reduces misunderstandings when done well because it creates a written record. You can re-read. You can ask clarifying questions in a thread. You can’t rewind a spoken conversation. The key is to write with precision and read with generosity. Assume good intent, ask for clarification when needed, and default to over-communicating rather than under-communicating. The extra few minutes spent writing clearly pay off in hours of avoided confusion.

What if leadership won’t buy into this?

Start small and show results. Don’t ask for permission to change the whole company’s communication culture. Just change your team’s. Run the experiment. Track the metrics that matter: features shipped, bugs closed, team satisfaction scores. When you can show that your team is more productive and happier with fewer meetings, you’ve got a case study, not a theory. Leadership responds to data, not manifestos. Be the data point. Then share the playbook. Culture change in engineering doesn’t come from top-down mandates. It comes from teams that try something better, prove it works, and let the results speak for themselves.

Person working alone at a desk with a laptop and notebook, representing focused async work

Team collaborating around a table with laptops, showing a rare intentional synchronous session

Person writing in a notebook with a cup of coffee, emphasizing thoughtful async communication

Why Your Engineering Team’s Biggest Bottleneck Is the Calendar

Let’s cut the corporate crap for a second. Nobody wants to say it out loud during a retro because it feels like heresy, but your team’s biggest bottleneck isn’t the creaky legacy monolith, the flaky test suite, or even that one microservice that shits the bed every Tuesday at 3 a.m. It’s the calendar. The shared, color-coded, notification-spamming, guilt-inducing calendar. We’ve built a culture where the knee-jerk reaction to any ambiguity, any need to coordinate, or any flicker of managerial anxiety is to throw a meeting on the books. We call it “collaboration.” I call it a synchronized waste of expensive brain cycles.

Engineering is a craft that demands long, unbroken stretches of focus. Instead, the modern tech workplace has turned into a gauntlet of stand-ups, sprint planning, backlog grooming, retros, one-on-ones, cross-team syncs, architecture review boards, and the dreaded “quick 15-minute check-in” that somehow eats an entire morning. We’re not building software anymore. We’re attending a perpetual conference about the possibility of building software.

A cluttered desk with multiple monitors displaying code and a calendar full of events

The Cognitive Cost of Context Switching

Developers aren’t factory workers. You can’t just hit pause on the conveyor belt, have a 45-minute chat about the conveyor belt, and then expect it to roar back to life at full speed. Loading a complex system’s mental model into a human brain takes time. Researchers at the University of California, Irvine, pinned down just how much: it takes an average of 23 minutes and 15 seconds to claw your way back to a focused state after an interruption. So, a single 30-minute meeting in the morning and another in the afternoon doesn’t cost you an hour. It vaporizes nearly two hours of deep work. You’ve taken a potential 8-hour deep-work day and hacked it into a fragmented, shallow 6-hour slog of task-switching.

And what do we get for that trade? A status update that could’ve been a three-line Slack message. A decision that could’ve been a threaded comment on a design doc. A debate about naming conventions that a linter should have settled back when we were all still arguing about tabs versus spaces. The math is ugly. Pull five engineers into a one-hour meeting, and you haven’t spent one hour. You’ve burned five hours of productive capacity. If that meeting was just to disseminate information, you’ve committed organizational malpractice.

Stand-ups: The Daily Ritual of Reciting Jira Tickets

The daily stand-up started as a quick, feet-on-the-ground sync for tightly coupled teams. It’s mutated into a theatrical performance where each person recites their Jira ticket number, mutters something about being “blocked,” and then mentally checks out for the next 14 minutes while pretending to care about the infrastructure team’s Kubernetes pod eviction saga. If your stand-up has more than five people, you’re not a team. You’re a small town hall meeting. Split it up. If your stand-up drags past 10 minutes, you’re not syncing. You’re problem-solving in a circle, which is the worst possible format for problem-solving.

The fix is so simple it stings. Write. It. Down. Post a daily async update in a dedicated Slack channel. What did I do yesterday? What am I doing today? What’s in my way? That’s it. Three bullet points. If someone is blocked, they don’t need to wait 24 hours to announce it to a captive audience. They can ping the person who can unblock them right now. The rest of the team can read the updates while grabbing a coffee, not while they’re in the middle of tracing a race condition.

A person writing on a whiteboard with sticky notes, representing planning and communication

Meetings as a Crutch for Weak Decision-Making Frameworks

A shocking number of meetings exist because the org lacks a clear decision-making protocol. When nobody knows who actually has the authority to make a call, the default move is to schedule a meeting to “align.” That’s a polite way of saying “spread the responsibility so thin that nobody feels the sting of a bad decision.” It’s organizational cowardice dressed up in a Google Calendar invite.

Strong engineering cultures lean on Request for Comments (RFCs) or design documents. You write down the problem, the proposed solution, the alternatives you considered, and the trade-offs. You post it in a shared space. You give people 24 to 48 hours to read and comment. If there’s consensus, you move. If there’s a fundamental disagreement, then you schedule a focused, time-boxed meeting with only the people who disagree. You don’t drag in eight bystanders to watch a debate about database indexing strategies. That’s not collaboration. That’s a hostage situation.

Async communication forces clarity. When you have to articulate your reasoning in writing, you can’t hide behind hand-waving and jargon. You can’t say “we’ll figure it out” and scan the room for nodding heads. You have to think. And when everyone has to think before they respond, the quality of the discourse goes up. The loudest voice in the room no longer wins. The best argument, laid out in plain text, wins.

The Managerial Panic Button

Let’s dig into the root cause. A lot of meetings get scheduled because a manager is anxious. They can’t see the code being written in real-time, so they demand a meeting to see the progress. They feel a loss of control, so they manufacture a synchronous checkpoint to reassure themselves that something is happening. This is a trust issue wearing a process mustache.

If you need a meeting to know what your team is doing, your project tracking is broken. If your Jira board, GitHub project, or Linear workspace doesn’t give you a clear picture of status at a glance, fix the tooling. Don’t break the team’s flow. A manager’s job is to absorb uncertainty and shield the team from organizational noise, not to amplify that noise by converting every external request into an internal interruption. When a VP asks a random question, the answer is not to schedule a two-hour deep-dive with the whole squad. The answer is to spend 15 minutes pulling the data yourself and sending a concise email.

Building an Async-First Culture

Shifting to async isn’t about installing a new tool. It’s about changing the default behavior. The default should be a written artifact. A pull request description that actually explains the context, not just “fixes bug.” A design doc that lives in a shared space, not a slide deck that disappears after a meeting. A recorded demo, not a live walkthrough that requires 20 people to coordinate calendars.

Here’s a practical starting point: declare a “No Meeting Wednesday” or, if you’re feeling bold, a “Maker Week” once a month where all recurring meetings are canceled. Watch what happens. The sky will not fall. In fact, you’ll probably ship more in that week than in the previous two combined. Then, take the meetings that were canceled and ask a hard question: did we miss anything? If the answer is no, kill those meetings permanently. If the answer is “we missed the social connection,” then schedule a dedicated, optional social hour. Don’t pretend that a sprint planning session is a team-bonding event. It’s not. It’s a negotiation about story points.

A developer working alone in a quiet, focused environment with headphones on

When a Meeting Actually Makes Sense

I’m not an absolutist. There are times when synchronous communication is the right tool. A complex, emotionally charged conflict between two team members should not be resolved over Slack threads. A high-stakes incident response requires a war room. A brainstorming session for a genuinely novel problem can benefit from the rapid back-and-forth of real-time conversation, provided it’s structured and has a clear output. But these are the exceptions. They should be rare, intentional, and treated as a break from the norm, not the norm itself.

The rule of thumb is this: if the meeting is primarily about information transfer, it should be an email, a document, or a recorded video. If it’s about decision-making, it should start as an RFC. Only if the RFC fails to resolve a critical disagreement do you escalate to a meeting. And that meeting must have a clear agenda, a designated decision-maker, and a hard stop. No agenda? No meeting. It’s that simple.

Frequently Asked Questions

What if my team is remote and we need meetings to feel connected?

Feeling connected is a legitimate need, but a status meeting is a terrible way to fulfill it. Separate the social from the functional. Schedule a virtual coffee chat, a gaming session, or an in-person offsite if the budget allows. Don’t try to sneak bonding into a backlog refinement. It doesn’t work, and it makes both the bonding and the refinement worse. People resent forced fun, and they resent meetings that waste their time. Give them space to actually talk to each other like humans, not like ticket-updating automatons.

How do I convince my manager to let us try async stand-ups?

Don’t ask for permission. Propose an experiment. Say, “I’d like to try async stand-ups for two weeks. We’ll post our updates in a public channel by 10 a.m. every day. If anything is blocked, we’ll escalate immediately. After two weeks, we’ll review the impact on throughput and team satisfaction.” Frame it as a data-driven trial, not a philosophical rebellion. Most reasonable managers will agree to a low-risk experiment. If your manager refuses to even try, you have a much bigger problem than meetings.

What about cross-team communication? Don’t we need meetings for that?

Cross-team communication is where async shines the brightest. Trying to find a 30-minute slot that works for six engineers across three time zones is a scheduling nightmare. Instead, create a shared channel or a discussion thread in your documentation tool. Post the context, the ask, and the deadline. Let people respond when they’re available. This respects everyone’s time and creates a written record that can be referenced later. If a real-time conversation is absolutely necessary, record it and post the recording with a summary. Never assume that everyone who needs the information can attend live.

How do we handle urgent issues without immediate meetings?

Define what “urgent” actually means. A production outage is urgent. A question from the sales team about a feature that’s not on the roadmap is not urgent, even if they put three red exclamation points in the subject line. For true emergencies, have a clear on-call rotation and an incident response protocol. That protocol should include a dedicated war room, but only for the people directly involved in resolving the incident. Everyone else gets a status page or a Slack update. Don’t pull the entire engineering org into a call because a certificate expired. That’s not a meeting. That’s a spectator sport.

The bottom line is this: your team’s time is the most valuable asset your company has. Treating it like an infinite resource you can squander on circular discussions is not just inefficient; it’s disrespectful. The best engineering cultures I’ve seen treat meetings like a necessary evil, a tool of last resort. They guard their focus time with the ferocity of a build system guarding its cache. They write things down. They trust each other to read. And they ship, relentlessly, while the meeting-heavy teams are still trying to find a time that works for everyone to discuss the agenda for the next meeting.

Why Your Engineering Team’s Calendar Is a Legacy System That Needs a Rewrite

I’ve sat through enough stand-ups to know the real bottleneck in software development isn’t the code. It’s the calendar. The modern engineering team has mutated into a meeting factory that occasionally ships features. We’ve ritualized interruption and called it collaboration. The fix isn’t a shiny new project management tool or a better retro format. The fix is shutting up and letting people work.

The Meeting Industrial Complex

Somewhere along the way, we decided that synchronous chatter was the gold standard for knowledge work. Got a question? Book a meeting. Need a decision? Book a meeting. Have a meeting coming up? Book a pre-meeting to decide what you’ll decide in the meeting. Then we act surprised when nothing ships on Friday.

Engineering is deep work. It demands long, uninterrupted stretches of concentration. Yank a developer into a 30-minute sync and you haven’t just lost 30 minutes. You’ve vaporized the 45 minutes they spent sinking into flow before the interruption, the meeting itself, and the 20 minutes it takes to rebuild mental context afterward. That’s nearly two hours of productive capacity. Torched. For a status update that could’ve been a three-line Slack message.

The kicker? Most meetings exist to solve problems that meetings created. A team communicates poorly, so leadership layers on a daily sync. The daily sync surfaces too many issues, so they add a weekly planning meeting. The planning meeting reveals misalignment, so they bolt on a cross-team alignment meeting. Before you know it, engineers spend more time talking about work than doing it. It’s a self-licking ice cream cone of inefficiency.

Engineer staring at multiple screens in a dark room, representing the deep focus needed for coding

The Async Advantage

Asynchronous communication isn’t just a remote-work buzzword. It’s the default mode for how engineers actually solve problems. You don’t debug a race condition by herding five people into a room and talking about it. You dig into logs, read documentation, write a proof of concept, and then share your findings. The work itself is async. The communication should match.

When a team goes async-first, something almost magical happens: people start writing things down. Design decisions get documented. Trade-offs get explained. Context gets preserved. Six months later, when someone asks why the authentication service uses a custom token format, there’s a written record instead of a vague memory of a whiteboard session that nobody photographed.

Async also flattens the playing field for distributed teams. The engineer in a different time zone stops being a second-class citizen dialing into 9 PM meetings. The introvert who needs time to process before responding gets to contribute at their best. The junior developer can read through the decision history and actually understand why the system works the way it does. Everyone wins except the extroverts who get energy from hearing themselves talk. They’ll survive.

What Async Actually Looks Like

Let’s get specific. Async communication means leaning on RFC documents, design proposals, and threaded discussions in Slack or Discord instead of real-time meetings. It means recording short video walkthroughs with Loom rather than scheduling a live demo that half the team can’t attend. It means writing clear, structured updates in a shared channel instead of going around the room in a stand-up.

Here’s a concrete example. Instead of a one-hour sprint planning meeting, the product manager writes a document outlining the next batch of work—context, acceptance criteria, links to relevant designs. Engineers review it on their own time, leave comments and questions, and the PM iterates on the doc. By the time anyone gets on a call—if they even need to—the major ambiguities are already resolved. The call is 15 minutes, not 60, and it’s optional.

Person writing in a notebook with a laptop open, illustrating thoughtful async documentation

The Meetings Worth Keeping

I’m not a meeting abolitionist. Some conversations genuinely benefit from real-time back-and-forth. Complex technical debates where you need to sketch architecture on a virtual whiteboard. Sensitive feedback that requires tone and empathy. Team bonding that builds the trust necessary for async to work in the first place. The trick is being intentional about which meetings earn their spot on the calendar.

A good rule of thumb: if the meeting is mostly about information transfer, it should be a document. If it’s about decision-making, it should start as a document and only escalate to a meeting if the async discussion deadlocks. If it’s about relationship-building, schedule it sparingly and make it genuinely social. The daily stand-up that’s really just a status report? Kill it. Replace it with a Slack bot that asks three questions and posts the answers to a channel.

I once worked with a team that replaced all internal meetings with async updates for a month as an experiment. Productivity shot up. Bugs got fixed faster. The only complaint came from a manager who felt “out of the loop” because he wasn’t hearing people talk. That’s not a communication problem. That’s a control problem dressed up as a communication problem.

Writing Is Thinking

There’s a deeper reason async works for engineering teams: writing forces clarity. When you have to explain a technical decision in prose, you can’t hide behind hand-waving and jargon. You have to structure your thoughts, anticipate counterarguments, and commit to a position. A spoken discussion can meander for an hour and end with “let’s take this offline.” A written proposal has to land somewhere.

This is why the best engineering cultures are writing cultures. They produce design docs, postmortems, and RFCs that become the team’s collective memory. New hires can onboard by reading through the archive. Decisions get made with the full context visible to everyone, not just the people who happened to be in the room. It’s more democratic, more rigorous, and frankly more respectful of people’s time.

Whiteboard covered in diagrams and notes, showing collaborative thinking without a meeting

How to Actually Make the Switch

Moving to async-first doesn’t happen by decree. You can’t just fire off a company-wide email announcing “no more meetings” and expect it to stick. The habits are too ingrained. You need to replace the rituals, not just remove them.

Start with the most painful meeting on the calendar. For most teams, that’s the daily stand-up. Replace it with a written check-in. Use a template: what I did yesterday, what I’m doing today, what’s blocking me. Post it in a shared channel. If someone is blocked, they can immediately ping the person who can help. No need to wait 24 hours to say it out loud in a circle.

Next, tackle decision-making. Create a lightweight RFC process. It doesn’t need to be formal. A Google Doc with a problem statement, proposed solution, alternatives considered, and open questions is enough. Give people 24–48 hours to comment. If there’s consensus, you’re done. If there’s disagreement, then—and only then—schedule a focused discussion with the relevant people. Most decisions won’t need the meeting.

Finally, protect deep work time. Block off large chunks of the calendar as “no meeting” zones. Make it culturally unacceptable to schedule over them. If someone tries, the response should be “can this be async?” not “let me shuffle my focus blocks around.” Treat uninterrupted time as the precious resource it is.

The Real Engineering Problem

Here’s the blunt truth: if your team can’t function without constant meetings, you have a trust problem or a clarity problem. Either leadership doesn’t trust engineers to do the right thing without constant oversight, or the team lacks the written context to make decisions independently. Both are fixable. Neither requires more meetings.

Engineering culture is the real technical problem. We obsess over system architecture, code quality, and deployment pipelines, but we tolerate communication patterns that are the equivalent of a single-threaded event loop blocking on I/O. It’s absurd. We’re building distributed systems with high throughput and low latency, and then we run our teams like a batch process from 1972.

Async communication is the horizontal scaling of human collaboration. It lets work happen in parallel. It creates a persistent log of decisions. It decouples services—I mean, team members—so they can operate independently. If you wouldn’t design your system the way you run your meetings, why are you running your meetings that way?

FAQ

Won’t async communication slow down decision-making?

Only if you measure decision speed by how quickly someone speaks in a meeting. Async actually speeds up the overall process because people can contribute when they’re ready, not when the calendar slot happens. A decision that takes two days of async discussion is still faster than waiting a week for the next scheduled meeting. And the decision quality is higher because people had time to think.

What about urgent issues that need immediate attention?

Urgent issues should be rare. If everything is urgent, nothing is. For genuine production incidents, you should have an on-call rotation and a well-defined incident response process. That’s not a meeting—that’s a fire drill. For everything else, “urgent” is usually a euphemism for “poorly planned.” Fix the planning, not the communication channel.

How do you maintain team cohesion without regular face-to-face meetings?

Cohesion comes from shared purpose and trust, not from staring at each other in a conference room. Async communication actually builds stronger cohesion because it creates a written record of collaboration. People see each other’s thinking, not just their talking. For the human connection piece, schedule occasional in-person or video social time that’s explicitly not about work. But don’t confuse socializing with status updates.

What if management insists on keeping the meetings?

Show them the math. Calculate the cost of a one-hour meeting with eight engineers. Then calculate how many hours per week those engineers spend in meetings. Multiply by their loaded cost. That number is usually enough to get attention. If it’s not, propose a one-month experiment: replace all status meetings with async updates and measure velocity, bug resolution time, and team satisfaction. Let the data do the arguing.

The bottom line: your team’s calendar is a legacy system. It’s time to refactor it. Start by deleting the meetings that exist only because they’ve always existed. Replace them with writing. Trust your engineers to manage their own time. You might be surprised how much they ship when you stop interrupting them.

Your Calendar Is a Bug, Not a Feature: Why Engineering Teams Need Fewer Meetings and More Async

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.

Your Team’s Postmortem Is a Plot Generator, and It’s Casting You as the Villain

The retro opens the way they always do. Someone pulls up the incident timeline. The room goes quiet a beat too long. Then the retellings start.

Maya, the SRE who caught the memory leak at 2 a.m., walks through a cascade: a misconfigured feature flag, a silent rollback failure, a database that started swapping and never stopped. In her version, she’s the protagonist—the one who traced the thread, stayed calm, wrote the runbook mid-incident while everyone else was still hunting for the right dashboard.

Dan, the staff engineer who approved the flag change, tells a different story. In his, the flag was safe. The rollback was tested. The real problem was the monitoring gap nobody had prioritized for three quarters. He’s not the villain; he’s the Cassandra who warned everyone and got ignored.

Priya, the engineering manager, tells a third. Hers is about process: the flag review checklist that was followed but insufficient, the on-call handoff that dropped context, the postmortem template that will now get a new section. In her version, nobody is at fault because the system is at fault, and the system can be fixed with a Jira ticket.

Three people. One incident. Three plots. And the plot that survives the retro—the one that makes it into the postmortem document, gets referenced in next quarter’s planning, shapes who gets promoted and who gets quietly managed out—that plot isn’t the truest one. It’s the one with the best narrative machinery behind it.

Your team’s postmortems, architecture decision records, onboarding docs, even your Slack threads are not neutral artifacts. They are plot generators. They take raw events—a deploy that failed, a decision that dragged on for six weeks, a junior engineer who asked too many questions and then stopped asking any—and turn them into stories. Stories with heroes. Stories with villains. Stories with a moral that justifies whatever the team already wanted to do.

Once a story sets, it becomes the team’s reality. The engineer cast as the bottleneck gets treated as the bottleneck, regardless of what the data says. The incident framed as a one-off gets forgotten until it happens again. The architecture decision recorded as “consensus” gets used to shut down dissent for years.

This is not a metaphor. It’s a description of how organizational memory actually works. And if you can’t read the plots your team is generating, you can’t change them.

§ 1 — The Postmortem as Origin Story

Every postmortem is an origin story. It answers: how did we get here? But the answer is never just a sequence of events. It’s a selection of events, arranged in a particular order, with particular characters assigned particular roles. The SRE book’s chapter on postmortem culture gets this right when it insists postmortems must be blameless—but even a blameless postmortem is still a story, and stories have protagonists. The question is who the protagonist is and what they’re trying to achieve.

I’ve read postmortems where the protagonist is the alerting system—a heroic piece of automation that caught the problem before it became a catastrophe. I’ve read postmortems where the protagonist is the engineer who stayed up all night, whose individual heroism is the only thing that saved the company. I’ve read postmortems where the protagonist is the process itself: the checklist that was followed, the escalation path that worked, the rollback that succeeded on the third try.

Each of these stories teaches a different lesson. The alerting-system story teaches: invest in automation. The hero-engineer story teaches: reward individual sacrifice. The process story teaches: add more process. And the team will learn whichever lesson the postmortem’s plot is designed to deliver, regardless of what actually happened.

The canonical reference here is the Google SRE book’s chapter on “Postmortem Culture: Learning from Failure” (https://sre.google/sre-book/table-of-contents/)—it lays out the principles of blamelessness, action items, and follow-through. But even Google’s framework doesn’t escape the narrative problem. A postmortem that identifies “insufficient monitoring” as the root cause is still telling a story where the monitoring gap is the villain. The action item—”add a dashboard for service X”—is the resolution. The plot is tidy. The moral is clear. And the fact that the monitoring gap existed because three different teams had three different definitions of “healthy” and nobody wanted to own the conflict? That part doesn’t make it into the document.

§ 2 — The Architecture Decision Record as Character Assassination

Architecture Decision Records are supposed to be neutral. They’re supposed to capture the context, the options considered, the decision made, the rationale. In practice, they’re often the most effective character assassination tool on the team.

I’ve seen ADRs that read like legal briefs, carefully constructing a case for why Option A was the only reasonable choice and anyone who advocated for Option B was either naive or malicious. The decision is recorded, but the duress is not. The three-hour argument where someone finally gave up out of exhaustion becomes “after extensive discussion, the team reached consensus.” The senior engineer who blocked the decision for two weeks because they didn’t like the person proposing it becomes “concerns were raised and addressed.”

An ADR is a plot generator that produces a very specific kind of story: the story of how the smart people made the right call, and the dissenters were heard and then overruled for good reasons. The actual conflict—the personality clash, the political maneuvering, the quiet resentment that will surface six months later in a different decision—gets edited out. What remains is a fiction that future engineers will read as history.

And that fiction has consequences. The engineer whose objections were erased from the ADR learns that their objections don’t count. The engineer whose preferred option was recorded as “considered but rejected due to scalability concerns” learns that their judgment is suspect. The team learns that the official story is the only story that matters, and the official story is written by whoever controls the document.

§ 3 — The Retrospective as Genre Fiction

Retrospectives have genres. I’ve catalogued them over years of sitting in rooms with sticky notes and tired engineers:

The Tragedy of the Overworked Hero. Someone on the team is doing too much. Everyone knows it. The retro becomes a ritual of acknowledging their sacrifice without ever changing the conditions that require it. The action item is always “distribute knowledge” or “improve documentation,” which translates to: the hero should document what they do so that someone else could theoretically do it, but nobody will, and the hero will keep being the hero until they quit.

The Mystery of the Missing Context. Something went wrong, and nobody knows why. The retro becomes a detective story where the team tries to reconstruct what happened from logs, Slack threads, and half-remembered conversations. The culprit is usually “communication breakdown” or “siloed knowledge,” which are euphemisms for: the people who knew the thing didn’t tell the people who needed to know the thing, and we’re not going to ask why.

The Farce of the Recurring Outage. The same incident happens for the third time. The retro becomes a performance of concern. People say things like “we need to prioritize reliability” and “this can’t happen again.” Tickets are filed. The tickets age. The incident happens a fourth time, and the retro becomes a farce of the farce.

Each genre has its own conventions, its own expected resolution, its own cast of characters. And the team that’s been together long enough knows exactly which genre they’re performing before anyone says a word. The retro isn’t a problem-solving session. It’s a ritual of narrative maintenance—a way of retelling the team’s story so that the team can keep being the team.

§ 4 — The Plot Generator as Organizational Machinery

Here’s the thing about plot generators: they’re not random. They have rules. They have templates. They have defaults. A fiction writer using a plot generator—like the one Reedsy offers (https://reedsy.com:443/studio/generators/plot/), which lets you select genre, tone, structure, and ending type before it produces a full outline—is making deliberate choices about what kind of story they want to tell. The generator imposes structure on raw ideas. It turns “something happens to someone” into “a protagonist with a specific want faces a specific obstacle, and the resolution teaches a specific lesson.”

Your team’s plot generator works the same way, except the choices are made by default, not by design. The postmortem template is the genre. The incident commander is the protagonist. The root cause is the antagonist. The action items are the resolution. The template doesn’t ask: whose perspective is missing? What conflict was edited out? What story would the junior engineer tell if they weren’t afraid of being labeled “not a team player”?

Writers use tools like plot generators as deliberate interventions to break out of narrative ruts—to see their story from a different angle, to try a structure they wouldn’t have chosen, to discover that the villain might be more interesting than the hero. Engineering teams need the same kind of deliberate intervention. Not a new postmortem template. Not a better retro format. A willingness to ask: what story are we telling, and who benefits from that story being told?

This is where the concept of an Unsloppy AI plot generator that helps writers break stale narrative patterns becomes useful as a conceptual bridge. The point isn’t the tool itself—it’s the recognition that narrative structures are choices, not inevitabilities. A writer who always defaults to the three-act structure with a clear hero and a tidy resolution is making a choice, even if they don’t realize it. An engineering team that always defaults to the postmortem where the process was insufficient and the action item is “add more process” is making the same kind of unexamined choice. The intervention is the same in both cases: stop treating the structure as given and start treating it as something you can change.

§ 5 — How to Read the Story Before It Reads You

You can’t rewrite a plot you can’t see. Here’s how to start reading the stories your team is telling:

Look for the protagonist. In every postmortem, every ADR, every retro summary, ask: who is the main character? Who is the story about? If the answer is always the same person—or always the same role—you’re looking at a plot generator that’s been tuned to produce hero stories. That hero is probably burning out, and the team is probably using their heroism as an excuse not to fix the underlying problem.

Look for the edited-out conflict. Every official document has gaps. The ADR that says “after discussion, the team agreed”—what was the discussion? Who disagreed? What were their reasons? The postmortem that says “the incident was detected by automated alerting”—who was paged? What did they do in the first five minutes? The gaps are where the real story lives.

Look for the moral. Every story teaches a lesson. What lesson does this postmortem teach? What lesson does this ADR teach? If the lesson is always “we need more process” or “we need better communication” or “we need to move faster,” you’re looking at a plot generator that’s been tuned to produce the same moral regardless of the events. That moral is serving someone’s interests. Figure out whose.

Look for the sequel. The best test of a story is what happens next. Did the action items from the last postmortem actually get done? Did the decision from the last ADR actually get implemented? Did the retro’s commitments survive contact with the next sprint? If the answer is no, the story was never meant to change anything. It was meant to make people feel like something changed so they could stop feeling bad and go back to work.

§ 6 — Rewriting the Plot

Once you can read the story, you can start rewriting it. This is not about manipulating people. It’s about refusing to accept the default narrative and insisting on a story that’s closer to the truth.

When the postmortem draft casts the monitoring gap as the villain, ask: who knew about the gap? Who decided not to prioritize it? What were the tradeoffs? When the ADR records “consensus” without recording the dissent, ask: can we add a “dissenting opinions” section? When the retro starts sliding into the Tragedy of the Overworked Hero, ask: what would need to change so that this person could take a vacation without the team falling over?

These questions are uncomfortable. They will make people defensive. They will be interpreted as “not being a team player” or “focusing on the negative.” That’s the point. The plot generator is comfortable. It produces stories that make everyone feel like they’re doing their best in a difficult situation. Rewriting the plot means introducing discomfort—the discomfort of acknowledging that someone made a bad call, that someone’s heroism is covering for a structural failure, that the team’s “consensus” was actually exhaustion.

But discomfort is the only thing that changes stories. A team that never feels uncomfortable in its retros is a team that’s stopped learning. A postmortem that never makes anyone wince is a postmortem that’s been sanitized into meaninglessness. An ADR that never records a real disagreement is an ADR that’s lying to the future.

The teams I’ve seen actually improve—the ones that get faster, more reliable, more humane over time—are the ones that have learned to tell harder stories. Stories where the hero is also part of the problem. Stories where the root cause is a decision someone made, not a gap that mysteriously appeared. Stories where the moral isn’t “we need more process” but “we need to stop doing the thing we keep doing even though we know it doesn’t work.”

Your team’s postmortem is a plot generator. Your ADRs are plot generators. Your retros are plot generators. The question is whether you’re going to keep running the same template, producing the same story, with the same characters in the same roles—or whether you’re going to look at the machinery, understand how it works, and start telling a story that might actually change something.

Start with the next retro. When someone starts telling the story of what happened, ask: whose story is this? Who’s the hero? Who’s the villain? What’s the moral? And then ask: what story would we tell if we were being honest?

That second story is the one that might save your team. The first one is just the plot generator running on default settings.

Your Calendar Is a Buggy Blocking Call: Why Async Is the Only Sane Default

Open your team’s shared calendar. Go on, I’ll wait. What you’re looking at isn’t a schedule—it’s a crime scene. A Tetris grid of overlapping blocks, colour-coded chaos, and the quiet death of actual productivity. Stand-ups, backlog grooming, sprint reviews, retros, alignment check-ins, pre-meeting meetings, and the inevitable “quick sync” that metastasises into 45 minutes of rambling. We’ve built a communication monster, and then we wonder why the codebase is a mess and everyone’s burnt out by Wednesday.

I’m not a meeting abolitionist. I’m a pragmatist who’s spent too many years watching talented engineers stare blankly at a shared screen while someone drones through a slide deck. The problem isn’t the meeting itself; it’s the lazy assumption that synchronous, real-time chatter is the default way to share information, make decisions, and align a team. That assumption is a bug in our engineering culture, and it’s time we debugged it.

The Real Cost of “Got a Minute?”

Let’s do the grim maths on a single 30-minute meeting with five engineers. Raw time: 2.5 hours. But that’s the sticker price, not the real cost. The real cost is the context-switching tax. Studies on developer flow show it can take 15 to 23 minutes to fully re-immerse after an interruption. If that meeting sits at 10:30 a.m., it doesn’t just steal 30 minutes—it frags the entire morning. One half-hour block can easily torch 10 to 15 hours of real, focused output. Now multiply that by the three or four meetings peppered across the week. Your roadmap isn’t a plan; it’s a fantasy novel.

But the time theft is only half the story. The other half is the quality of the thinking. Synchronous meetings are a stage, and the performance favours the loudest voice, the quickest quip, and the most fluent speaker. The thoughtful engineer who needs 20 minutes of silence to turn a problem over in their head? They get steamrolled. The introvert who writes brilliantly but speaks cautiously? They never get the mic. You’re not harvesting the best ideas; you’re harvesting the fastest ones. That’s a lousy way to design systems, and a worse way to treat your people.

A group of professionals in a meeting, one person talking while others listen, illustrating the imbalance of synchronous communication.

Async Is a Systems Architecture Choice

Engineers will happily wage holy wars over monoliths vs. microservices, or tabs vs. spaces, but we’re weirdly passive about our communication tools. We just accept the invite, grumble, and join the call. That’s insane. Asynchronous communication—writing things down, recording short walkthroughs, using threaded discussions—isn’t a soft skill. It’s the technical architecture for your team’s collective brain. Think of it as the difference between a blocking I/O call and an event-driven system. One halts the entire process until it gets a response. The other fires off a message and keeps working, handling the result when it’s ready. Which one scales better?

When you write a design doc instead of holding a design review meeting, you’re creating a persistent, searchable artifact. People read it when their brain is fresh, leave comments, and let ideas marinate. The decision doesn’t get crammed into a 45-minute window of groupthink; it evolves over a day or two, pulling in perspectives from different time zones and work schedules. That’s not just more inclusive. It’s more rigorous. You’re building a decision-making process that actually resembles engineering.

The Artifacts Are the Point

We tell ourselves a comforting lie: meetings are for alignment. But alignment doesn’t come from sitting in a room nodding along. It comes from a shared understanding of the problem, the constraints, and the proposed solution. A well-written RFC or a technical spec creates that shared understanding far better than a slide deck and a monologue ever could. The document becomes the source of truth. Six months later, when someone asks, “Why on earth did we build it this way?”, you can point to the doc. Try doing that with a Zoom recording that’s buried in a forgotten channel and will never, ever be watched.

If your team relies on meetings to make decisions, you’re building a culture with amnesia. Every important conversation should leave a trace. That trace—the written word—should be the primary medium, not a hasty summary email sent out after the fact by the one person who was actually paying attention.

A person working alone on a laptop in a quiet, sunlit room, representing focused asynchronous work.

Meetings as a Cultural Code Smell

When I see a team calendar that looks like a mosaic of recurring meetings, I don’t see a well-oiled machine. I see a pile of unresolved organisational bugs. Each meeting is a sticky plaster slapped over a broken process. Let’s autopsy the usual suspects.

The Daily Stand-up That Became a Status Report

The stand-up was meant to be a quick team huddle for coordination, not a daily interrogation where a project manager polls each developer on their progress. If your stand-up drags past 10 minutes and everyone’s giving updates to a single person, you don’t have a communication problem. You have a micromanagement problem. The fix isn’t a better stand-up format; it’s a project-tracking tool that actually works and a manager who knows how to read it. Kill the stand-up. Replace it with a Slack thread where people drop a sentence or two at the start of their day. If someone’s stuck, they’ll speak up. Trust them.

The Backlog Grooming That Never Ends

Grooming sessions are often a symptom of not doing the hard, boring work of writing clear tickets. If a ticket can’t be understood asynchronously, it’s a bad ticket. The product manager should write the ticket. The tech lead should add technical context. The team should ask questions in the comments. A two-hour meeting to discuss 30 tickets is a blaring siren that your tickets are too vague or your team doesn’t feel empowered to make small scoping decisions on their own. Write better tickets. Trust your engineers to use their judgement. If they can’t, you’ve got a hiring problem, not a meeting problem.

The “Quick Sync” That Multiplies

This one’s the most insidious. It starts with good intentions: “Let’s just hop on a call to sort this out.” It’s faster than writing an email, right? Wrong. It’s faster for the person calling the meeting, but it’s a tax on everyone else. And it sets a precedent. Soon, every minor ambiguity triggers a calendar invite. The team’s default response to any friction becomes “let’s schedule something.” You’re training your team to be helpless without a meeting. Instead, train them to write a short, structured problem statement. “Here’s what I’m trying to do, here’s where I’m stuck, here are the options I see.” That’s a skill. Build it.

How to Actually Make the Switch

Moving to an async-first culture isn’t about declaring “no more meetings” and hoping for the best. That’s like saying “no more bugs” and firing your QA team. You need to build the infrastructure and the habits. Here’s the practical, unsexy work.

1. Default to Written Proposals

Any decision that affects more than two people or spans more than a sprint should start as a written document. Use a template. Keep it short: problem statement, proposed solution, alternatives considered, open questions. Share it in a dedicated channel. Give people at least 24 hours to read and comment. Only schedule a meeting if the async discussion hits a genuine deadlock. You’ll find that 80% of the time, the deadlock resolves itself in the comments.

2. Record Short Videos for Complex Explanations

Sometimes, a wall of text is worse than a five-minute video. If you need to walk through a complex diagram or a code flow, use a screen recording tool. Keep it under 10 minutes. People can watch it at 1.5x speed, pause, rewind, and watch it when their brain is ready to absorb it. This is still asynchronous. It’s not a meeting. It’s a message you send.

3. Set Communication SLAs, Not Expectations of Immediacy

One reason people default to meetings is the fear of waiting hours for a reply. The fix is to agree on response times. For example: “We expect people to check and respond to async channels within half a day, not half a minute.” This gives everyone permission to focus without anxiety. If something is truly urgent, have a clear escalation path—a dedicated channel or a phone call. But “urgent” should mean “production is down,” not “I’m curious about your opinion on this variable name.”

4. Protect Maker Schedules Aggressively

Block out large, uninterrupted chunks of time on the team calendar. Call them “Focus Hours” or “No-Meeting Blocks.” Make it a cultural norm that you don’t schedule over them unless the building is on fire. This isn’t about being antisocial; it’s about respecting the fact that engineering is a creative, cognitive discipline. You wouldn’t interrupt a surgeon mid-surgery to ask about the weekend. Stop interrupting your engineers mid-thought.

A calendar with large blocks of time marked as busy, illustrating the concept of protecting maker schedules.

The Social Contract of Async

Here’s the part that makes people squirm. Async communication demands a higher level of individual responsibility. You can’t hide in a meeting and pretend to be engaged. You have to actually read, think, and write. For some engineers, this is a relief. For others, it’s a nightmare. The ones who coasted by nodding along in meetings will suddenly be exposed. That’s a good thing. Your team’s performance should be measured by the quality of its output, not the quality of its theatre.

It also requires a different kind of trust. Managers have to trust that people are working even when they’re not visibly typing in a Slack channel. Engineers have to trust that their written contributions will be read and valued. This trust isn’t built overnight. It’s built by consistently showing that async processes lead to better outcomes. Start small. Replace one recurring meeting with an async process. Show that it works. Let the results speak for themselves.

When You Actually Do Need a Meeting

I’m not a purist. There are times when synchronous communication is the right tool. But those times are rarer than you think. A meeting is useful for:

  • High-bandwidth, emotionally charged discussions: Giving hard feedback, resolving interpersonal conflict, or celebrating a win. These need human presence.
  • Real-time collaborative debugging: When two or three people need to stare at the same screen and think out loud. This is a working session, not a status meeting.
  • Kicking off a new initiative: A short, energetic call to build shared excitement and answer initial questions. But then immediately move to async for the details.

Notice the pattern: meetings are for connection and real-time collaboration, not for information dissemination or routine decision-making. If you’re using a meeting to read slides to people, you’re doing it wrong. Send the slides. If they have questions, they’ll ask.

FAQ

Won’t going async make the team feel disconnected and isolated?

It can, if you do it poorly. Async communication handles the work of the team, but you still need to invest in social connection. Schedule optional, purely social events—virtual coffee chats, gaming sessions, or in-person meetups if you’re colocated. The goal isn’t to eliminate all synchronous interaction; it’s to stop using work meetings as a substitute for team bonding. When work happens async, the synchronous time you do spend together can be higher quality and more focused on human connection.

How do we handle urgent issues without instant communication?

Define what “urgent” actually means. For most teams, it’s a production incident. Have a clear, well-documented incident response process that includes a dedicated real-time channel (like a war room) and an on-call rotation. For everything else, “urgent” is usually just “I want an answer now.” Train your team to distinguish between the two. If a non-incident request comes in, the response should be: “I’ll look at this during my next async check-in.” Over time, people learn that async doesn’t mean ignored; it means processed in a batched, thoughtful way.

What if management insists on keeping all the meetings?

This is the hardest scenario, because it’s a power problem, not a process problem. Start by gathering data. Track how much time the team spends in meetings and correlate it with output or team satisfaction. Present the data to management as a business case: “We’re losing X hours of potential focus time per week. I’d like to run an experiment where we replace Y meeting with an async process for one month and measure the results.” Frame it as a low-risk trial. If management still refuses, you’ve learned something important about the organisation’s values. At that point, you can decide whether to accept it or find a team that respects how engineers actually work.

The Bottom Line

Your team’s communication architecture is just as important as your system architecture. A system that relies on constant synchronous blocking calls is fragile, slow, and doesn’t scale. The same is true for your team. Most engineering teams don’t need more meetings; they need fewer, better meetings surrounded by a rich ecosystem of asynchronous practices. They need to treat writing, recording, and reading as first-class engineering activities. They need to stop confusing activity with progress.

So here’s your homework: look at your calendar for next week. Find one recurring meeting that exists mostly out of habit. Cancel it. Replace it with a written update or a short video. See what breaks. I’m betting nothing will. And if something does break, you’ve just found a process that needs a real fix, not a standing invite. That’s engineering. That’s debugging. That’s the job.

Your Calendar Is a Scam: Why Engineering Teams Need Fewer Meetings and More Async

I once sat through a 90-minute sprint planning session where the loudest person in the room spent 40 minutes debating whether a button should say “Submit” or “Save.” The ticket was already groomed. Acceptance criteria? Crystal clear. The designer had signed off. But there we were—fifteen engineers and a product manager—watching two people argue about a word that was going to be A/B tested anyway. That meeting burned about $2,500 in salary time. Three weeks later, someone changed the button back. Nobody remembers why.

This isn’t a one-off horror story. It’s the standard operating rhythm in most engineering orgs. We’ve normalized synchronous communication to the point where a developer’s calendar looks like Tetris played by someone mid-panic attack. And then we act surprised when nothing ships.

The Meeting Industrial Complex

Meetings aren’t the enemy. A tight whiteboard session can crack a nasty architecture problem in half an hour. A quick standup can surface a blocker that would otherwise fester for days. But somewhere along the way, we confused “collaboration” with “constant interruption.” We built a culture where the default response to any uncertainty is “let’s hop on a call.”

Here’s what that actually looks like. You carve out two hours for deep work. You open your IDE. You start loading the mental model of the codebase into your head—a process that takes a solid 20 minutes of uninterrupted thought. Then Slack dings. A calendar reminder pops up. “Quick sync on the API contract.” You join. It’s not quick. It’s 45 minutes of people reading aloud a document they could have read on their own. You return to your desk. The mental model is gone. You spend another 20 minutes rebuilding it. You get maybe 15 minutes of real progress before the next interruption. That’s not work. That’s cognitive whiplash.

Engineering is a deep-thinking discipline. The best code comes from sustained focus, not from fragmented attention sprinkled between standups, status updates, and “alignment” meetings that align nothing except everyone’s desire to escape. Yet we schedule engineering time like we’re running a support hotline. It’s ridiculous.

Engineer staring at multiple screens overwhelmed by notifications
This isn’t collaboration. It’s a distraction factory.

The Real Price of Synchronous Everything

Let’s talk numbers, because engineers perk up when numbers enter the chat. A single one-hour meeting with six engineers doesn’t cost one hour. It costs six hours of focused work time, plus the context-switching tax. Research on task interruption says it takes an average of 23 minutes to regain deep focus after a distraction. If each of those six engineers loses just 20 minutes of flow state before and after the meeting, that’s another four hours vaporized. One meeting. Ten hours of real work, gone. Now multiply that by the number of recurring meetings on your calendar this week. Feel sick yet?

But the damage goes deeper than time. Meetings breed performative productivity. People talk to be heard, not to move work forward. Decisions get made by whoever shouts loudest, not whoever thought hardest. Introverts, careful thinkers, and anyone who needs time to process information get steamrolled. The meeting ends with a vague consensus nobody actually agreed to, and everyone leaves drained. This isn’t collaboration. It’s group therapy for the indecisive.

Async Communication Is a Skill, Not a Tool

When people hear “async-first,” they picture Slack messages at 2 a.m. and a chaotic trail of threads nobody reads. That’s not async. That’s just synchronous communication with a time delay and worse formatting. Real async communication is structured, thoughtful, and designed for consumption by humans who aren’t occupying the same mental space as you.

An effective async update has a clear decision requested, context that doesn’t assume the reader attended the last three meetings, and a deadline for input. It’s not a brain dump. It’s a crafted artifact. Writing it forces clarity. Reading it allows processing time. The result? Better decisions made by people who actually had a moment to think.

This shift demands a cultural change, not just a tool swap. It means rewarding written communication skills. It means managers stop reaching for “can we jump on a quick call” as their first resort. It means treating uninterrupted time as sacred, not as empty space to fill with another sync.

Team collaborating around a whiteboard with sticky notes
Even in-person collaboration works better when preceded by async prep.

Which Meetings to Kill First

Not all meetings deserve the axe. But plenty do. Start with the ones that exist purely out of habit.

Daily Standups That Are Just Status Dumps

If your standup is a round-robin where each person recites what they did yesterday and what they’ll do today, kill it. That information belongs in a channel, a thread, or a tool. The only reason to stand in a circle—physical or virtual—is to surface blockers and coordinate unblocking. If nobody has a blocker, end the meeting in 90 seconds. If people are just reporting status to a manager, that manager needs to learn to read.

Planning Meetings That Should Be Documents

Technical planning doesn’t need a conference room. It needs a collaborative document, a deadline for comments, and a final review window. Async planning produces better designs because people have time to think through edge cases instead of nodding along to avoid extending the meeting. The loudest-voice problem disappears. The document becomes the source of truth, not someone’s hazy memory of what was said.

“Sync” Meetings That Sync Nothing

If a meeting title contains the word “sync,” “alignment,” or “touch base,” assume it’s worthless until proven otherwise. These meetings are often therapy sessions for managers who feel out of the loop. The cure is better written updates, not stealing an hour from six engineers. If a manager can’t stay informed through async channels, the problem is the manager’s information diet, not the team’s communication frequency.

Building an Async-First Engineering Culture

Shifting to async isn’t about installing a new tool. It’s about changing defaults. The default for sharing information becomes a document, not a meeting. The default for getting feedback becomes a comment thread with a deadline, not a calendar invite. The default for decision-making becomes a written proposal with a clear owner, not a group discussion that diffuses responsibility.

This requires explicit norms. Here are a few that actually work:

  • No-meeting blocks. Every engineer gets at least four contiguous hours per day with zero meetings. This is non-negotiable. It’s protected by the team, not just by individual calendar blocks that others ignore.
  • Writing-first proposals. Any technical decision affecting more than two people starts as a written document. Discussion happens in comments. A meeting only happens if the async thread deadlocks—and that should be rare.
  • Decision deadlines. Async discussions need end dates. “Please provide input by Thursday 5pm. Decision will be made Friday morning.” Without deadlines, async threads become zombie discussions that stagger on forever.
  • Recording and notes for any meeting that survives. If a meeting absolutely must happen, it gets recorded. Written notes get posted within two hours. People who weren’t there can catch up without scheduling a second meeting to recap the first one.
Developer working alone in a quiet, focused environment
This is where actual engineering happens. Protect it.

The Manager’s Role in Killing Meetings

Managers are often the biggest source of unnecessary meetings. Not because they’re malicious, but because their job involves coordination and they default to the easiest coordination method: getting everyone in a room. Breaking this habit requires managers to do harder work. Writing clear context. Reading threads thoroughly. Trusting that work is happening even when they can’t see it in real time.

A good engineering manager in an async culture spends more time editing documents than attending meetings. They amplify signals, not noise. They protect their team’s focus time like a bouncer at an exclusive club. If someone tries to schedule a meeting that could be an email, the manager pushes back. If a stakeholder demands a “quick sync,” the manager asks for an agenda and a written summary first.

This is uncomfortable at first. People will complain that they feel “out of the loop.” That’s a sign the written communication isn’t good enough yet, not a sign that you need more meetings. Fix the writing. Don’t add the meeting.

When Meetings Actually Make Sense

Let’s be fair. Some problems are genuinely synchronous. Complex debugging sessions where two brains on one screen find the bug faster. High-stakes incident response where seconds matter. Relationship-building conversations where tone and trust can’t be conveyed in text. Creative brainstorming where the energy of rapid back-and-forth sparks ideas that wouldn’t emerge in a comment thread.

The key is intentionality. A meeting should be the exception, not the rule. It should have a clear purpose, a tight agenda, and a defined outcome. It should end the moment that outcome is achieved, not when the calendar slot expires. And it should be scheduled sparingly, like a surgery, not like a daily vitamin.

What Happens When You Actually Cut Meetings

Teams that go async-first report the same things. Ship velocity increases. Engineers report higher job satisfaction. Design quality improves because people have time to think. Decisions stick because they were made deliberately, not in a rushed Zoom call where half the participants were checking Slack.

But the most interesting change is cultural. The team stops equating responsiveness with competence. The engineer who replies to a thread six hours later with a thorough, well-reasoned analysis is valued more than the one who fires off a half-baked opinion in real time. Deep work becomes the norm, not a luxury. The calendar stops being a weapon and starts being a tool.

This doesn’t mean the team goes silent. It means communication becomes richer, more deliberate, and more respectful of everyone’s time and cognitive load. The loudest voice loses its power. The best ideas win. And that button text debate? It happens in a document, takes ten minutes of reading, and ends with a decision that everyone can reference later. No meeting required.

Frequently Asked Questions

Won’t async communication slow down decision-making?

Only if you measure speed by how fast someone says something, not by how fast a good decision gets made and implemented. Synchronous meetings create an illusion of speed—a decision is “made” in 30 minutes—but that decision often unravels over the following days as people realize they didn’t actually agree or think through the implications. Async decisions take slightly longer to reach but dramatically less time to stick. Net speed goes up.

How do we handle urgent issues without meetings?

Urgent issues get urgent channels. A dedicated incident Slack channel with clear roles, a running document, and an optional voice bridge for those actively debugging. The key distinction: only people directly working the problem are synchronous. Everyone else follows along async. This prevents the common disaster pattern where fifteen people join a call and fourteen of them are just watching.

What if our company culture just loves meetings?

Culture is just a collection of habits reinforced by what leaders tolerate. If your company “loves meetings,” it’s because nobody with authority has said “this is wasteful” and meant it. Start small. Kill one recurring meeting and replace it with a written update. Show the results. Engineers will defend the new free time with their lives. Culture changes when the alternative is obviously better, not when someone gives a presentation about it.

Don’t junior engineers need more face time for mentoring?

Yes, mentoring benefits from synchronous interaction. But that’s a one-on-one or small group activity, not a team-wide meeting. Pair programming, scheduled office hours, and dedicated mentoring sessions are valuable. Dragging six junior engineers into a planning meeting where they say nothing is not mentoring. It’s hazing.

The Problem With Hiring Processes That Test for Anything Except the Actual Job

Look, I get it. Hiring is hard. You want to find the mythical 10x engineer who can recite Knuth from memory, build a compiler in a weekend, and still have time to grab a beer with the team. But somewhere along the way, we turned technical hiring into a circus sideshow. We’re asking candidates to invert binary trees on whiteboards, solve riddles about burning ropes, and take home assignments that are basically unpaid consulting gigs. Meanwhile, the actual job is debugging a CSS grid in a legacy codebase and figuring out why the build pipeline broke again. The disconnect is so wide you could drive a truck through it.

I’m Fritz Muller, and I’ve been on both sides of this mess. I’ve been the candidate who spent a weekend building a REST API for a fictional pizza delivery service, only to get rejected because I didn’t use the exact ORM the interviewer preferred. I’ve also been the engineer sitting in a hiring meeting, watching my colleagues debate whether a candidate’s failure to solve a dynamic programming puzzle in 45 minutes means they can’t write maintainable React components. It’s absurd. The problem isn’t just that these tests are annoying—it’s that they actively filter for the wrong people and create teams that are great at puzzles and terrible at shipping software.

The Whiteboard Theater

Let’s start with the classic: the whiteboard coding interview. You’re standing in a conference room, marker in hand, while three engineers stare at you. They want you to reverse a linked list. On a whiteboard. With no syntax highlighting, no autocomplete, and no ability to run your code. This is supposed to simulate how you’ll perform on the job. But when was the last time you wrote production code on a whiteboard? Never. Because that’s not a thing. We have IDEs. We have Stack Overflow. We have the ability to think for more than 30 seconds without someone judging our handwriting.

What this actually tests is your ability to perform under a very specific, artificial kind of pressure. It favors people who have practiced whiteboard problems obsessively—often at the expense of building real things. I’ve seen candidates nail a perfect O(log n) solution to some tree traversal problem, then struggle to set up a basic dev environment on their first day. The whiteboard gauntlet selects for competitive programmers, not collaborative engineers. And unless your company’s product is competitive programming, that’s a mismatch.

The defense is always the same: “We’re not testing for the right answer, we’re testing for problem-solving approach.” Fine. But you can test problem-solving with a real-world scenario. Give me a buggy code snippet and ask me to debug it. Ask me to design a small feature and talk through trade-offs. Don’t make me stand at a wall like a naughty schoolchild and derive a red-black tree from scratch. That’s not engineering; that’s hazing.

Person standing in front of a whiteboard filled with diagrams and code, looking confused

The Take-Home Project Trap

Then there’s the take-home assignment. On paper, it sounds reasonable: “Here’s a small task, go build it in your own time, and we’ll review it.” In practice, it’s a monster. I’ve seen take-home projects that ask for a full-stack application with authentication, database migrations, a responsive frontend, and a detailed README—all due in 48 hours. That’s not a “small task.” That’s a weekend of unpaid labor, and it disproportionately filters out people who have lives outside of coding. Parents, caregivers, people with side projects or actual hobbies—they’re all at a disadvantage.

And let’s be honest: many companies don’t even review these projects thoroughly. I’ve submitted take-home assignments that I poured 20 hours into, only to get a one-line rejection email with no feedback. Or worse, I’ve been on the other side, where the hiring manager skims the repo for five minutes and makes a snap judgment based on whether the candidate used the “right” folder structure. The signal-to-noise ratio is terrible. You’re not evaluating their ability to do the job; you’re evaluating their willingness to sacrifice a weekend for a chance at a job.

There’s also the plagiarism problem. Candidates can easily copy solutions from GitHub or pay someone to do the assignment. So you’re not even getting a reliable signal. Meanwhile, the candidate who actually did the work is exhausted and resentful before they’ve even started. Great first impression.

The Riddle Me This Interview

Some companies love logic puzzles. “How many golf balls fit in a school bus?” “Why are manhole covers round?” These questions were popularized by certain big tech firms and then copied by everyone else, like a bad meme. The stated goal is to test creative thinking. The actual result is testing whether the candidate has read the same interview prep books as the interviewer.

I once had an interviewer ask me to estimate the number of gas stations in the United States. I gave a reasonable Fermi estimate, walking through population density, car ownership rates, and average station capacity. The interviewer nodded, then told me the “correct” answer was something he’d memorized from a blog post. He wasn’t interested in my reasoning; he was interested in whether I’d read the same blog post. That’s not an interview. That’s a trivia night with higher stakes.

These questions also favor a certain personality type: the quick-thinking, confident bullshitter. The kind of person who can pull a number out of thin air and defend it with a straight face. Is that really the trait you want to optimize for? I’d rather have the engineer who says, “I don’t know, but I’d look it up and get back to you with a real answer.” That’s the person who won’t deploy untested code to production at 4:55 PM on a Friday.

Person staring at a complex puzzle on a table, looking frustrated

The Culture Fit Charade

“Culture fit” is often code for “people like us.” It’s the most subjective, bias-prone filter in the hiring process, and it’s usually disguised as a casual chat. You’ll get questions like, “What do you do for fun?” or “Tell me about a time you disagreed with a coworker.” The interviewer is looking for someone they’d enjoy having a beer with. But hiring for beer compatibility doesn’t build strong teams; it builds homogeneous ones.

Real culture fit should be about values and working style, not hobbies and personality mirroring. Does the candidate care about code quality? Do they handle disagreement constructively? Do they take ownership of mistakes? These things can be assessed with structured behavioral questions, not a vibe check over coffee. But structured interviews require effort and training, and most companies would rather wing it and trust their gut. The problem is, guts are full of unconscious bias.

I’ve seen teams reject perfectly qualified candidates because they “didn’t seem like a good fit,” which translated to “they were quiet” or “they didn’t laugh at our inside jokes.” Meanwhile, the charismatic candidate who aced the culture chat turned out to be a nightmare—all talk, no commits. Culture fit should be about how someone works, not how they entertain you during a 30-minute conversation.

The Algorithmic Gauntlet

Let’s talk about the LeetCode obsession. Companies act like the ability to solve a medium-difficulty dynamic programming problem in 20 minutes is a prerequisite for writing a CRUD endpoint. It’s not. Most software engineering is integration, debugging, reading other people’s code, and making sensible trade-offs. It’s rarely about finding the optimal solution to a toy problem with artificial constraints.

Algorithmic interviews favor people who have time to grind LeetCode—often students or people between jobs. They penalize experienced engineers who are busy actually building things. I’ve worked with brilliant systems architects who would fail a LeetCode hard because they haven’t touched a red-black tree since college. But they can design a distributed system that handles millions of requests per second. Which skill do you actually need?

The irony is that many companies using these tests don’t even have algorithmically challenging work. They’re building yet another SaaS dashboard, not a new database engine. But they cargo-cult the FAANG interview process because it makes them feel prestigious. It’s like requiring a Michelin-star cooking test for a line cook at a diner. Sure, it’s impressive if someone can do it, but it has nothing to do with whether they can handle the breakfast rush.

The Real Job Preview

So what should hiring look like? It should look like the job. If the job involves debugging, give them a broken piece of code and a debugger. If the job involves code review, give them a pull request and ask for feedback. If the job involves system design, give them a realistic scenario and talk through trade-offs. This isn’t rocket science—it’s just treating candidates like future colleagues instead of puzzle-solving contestants.

Work-sample tests are the gold standard. They’re structured, job-relevant, and consistently shown to be one of the best predictors of future performance. They also give candidates a realistic preview of the work, which helps them self-select. If someone looks at your codebase and runs screaming, that’s a good outcome for everyone. Better to find out now than two weeks into onboarding.

Structured behavioral interviews also work. Ask every candidate the same questions, based on the competencies you actually need. Score their answers against a rubric. It’s not sexy, but it’s fair and effective. And it doesn’t require anyone to balance a binary tree on a whiteboard while humming the Star-Spangled Banner.

Two developers collaborating at a desk with laptops, one pointing at the screen

The Cost of Bad Hiring

Bad hiring processes don’t just waste candidates’ time—they cost companies real money. A bad hire is expensive, but so is rejecting good candidates for stupid reasons. Every false negative is a missed opportunity, and in a tight labor market, those missed opportunities add up. You’re not just losing that candidate; you’re losing everyone they tell about your ridiculous interview process. Word gets around. Your employer brand takes a hit.

And let’s talk about the internal cost. Senior engineers spend hours designing puzzles, conducting interviews, and debating candidates. That time could be spent mentoring, architecting, or actually writing code. Instead, they’re playing gatekeeper in a process that’s optimized for false negatives. It’s a massive tax on your engineering organization, and most companies don’t even measure it.

There’s also the diversity cost. Processes that favor competitive programmers, trivia buffs, and fast-talkers systematically filter out people who don’t fit that mold. That includes many women, older engineers, career-switchers, and neurodivergent folks. If your hiring process produces a monoculture, don’t be surprised when your team lacks diverse perspectives. And don’t blame the pipeline—blame the filter.

What We’re Actually Testing

Let’s be brutally honest about what these interviews really measure. Whiteboard algorithm challenges test how much free time you had to grind LeetCode. Take-home projects test how much unpaid labor you’re willing to do. Logic puzzles test whether you’ve heard the question before. Culture fit interviews test how similar you are to the interviewer. None of these reliably predict job performance.

What they do predict is compliance. They select for people who are willing to jump through arbitrary hoops without questioning the process. They select for people who have the privilege of unlimited free time. They select for people who perform well under artificial, high-pressure conditions that have nothing to do with the actual work. If that’s what you want, great. But don’t pretend you’re hiring the best engineers.

The best engineers I’ve worked with are curious, methodical, and collaborative. They ask questions. They admit when they don’t know something. They’re not necessarily the fastest coders or the smoothest talkers. But they build systems that work, they fix problems without creating new ones, and they make the people around them better. You won’t find them by asking how to shuffle a deck of cards in O(n) time.

FAQ

Q: Aren’t coding challenges necessary to filter out people who can’t actually code?
A: There’s a difference between a basic coding exercise and a LeetCode hard problem. A simple, job-relevant task—like fixing a bug in a small codebase or writing a function that processes data—can filter out non-coders without selecting for competitive programmers. The goal is to find the minimum viable signal, not to see who’s memorized the most algorithms.

Q: What if our company really does need strong algorithm skills?
A: Then test for that, but do it in a realistic context. If you’re building a database engine, sure, ask about B-trees and write some low-level code. But even then, let the candidate use a computer, an IDE, and reference materials—because that’s how they’ll work on the job. The artificial constraints of a whiteboard interview don’t test real ability; they test interview preparation.

Q: How do we assess problem-solving without puzzles or brainteasers?
A: Give them a real problem. Show them a messy codebase and ask how they’d refactor it. Present a system design scenario with trade-offs and ask them to walk you through their thinking. Use pair programming on a simplified but realistic task. These methods test problem-solving in context, not abstract puzzle-solving skills.

Q: Isn’t culture fit important? How do we assess that fairly?
A: Culture fit is important, but it should be about values and working style, not personality. Define what “fit” means for your team—collaboration, ownership, communication style—and design structured questions around those dimensions. Score every candidate against the same criteria. This reduces bias and ensures you’re hiring for the culture you want to build, not the culture you already have.

Hiring is broken because we’ve optimized for the wrong things. We’ve built processes that are great at identifying people who are good at interviews, not people who are good at the job. The fix isn’t complicated: stop testing for trivia, stop hazing candidates with whiteboard performances, and start evaluating the skills that actually matter. Give people a realistic preview of the work. Treat them like future colleagues, not contestants on a game show. The engineers you want are the ones who can build, debug, and collaborate—not the ones who can recite CLRS from memory. So unless your company’s product is a book of algorithm puzzles, maybe stop hiring for that.

The Interview Gauntlet: Why Your Hiring Process Tests for Everything Except the Job

Here’s a scene. You stumble on a job listing for a senior backend developer. The description is a clean, honest brief: they need someone to refactor a monolithic payment system before it buckles under traffic, tune PostgreSQL queries that currently run longer than a lunch break, and probably untangle ten years of spaghetti left behind by engineers who fled into management. You read it and think, “Yeah, I can do that. I’ve done that. I still have the scars.”

You apply. What comes next isn’t a conversation about indexing strategies or the trade-off between eventual consistency and screaming at your monitor. What comes next is a gauntlet of puzzles that feel like they were designed by someone who skimmed a hiring book once and then got creative with the torture. You’re asked to invert a binary tree on a whiteboard while three engineers stare at you, silently judging your handwriting. You get a take-home assignment to build a miniature social network, complete with a chat feature, because apparently the company’s actual product isn’t enough work for anybody. You sit through a “cultural fit” interview where someone asks which animal you’d be, and you have to fight the urge to say “a vulture, because I’m circling this process.”

This is technical hiring right now. It’s a cargo cult of complexity, a ritual performance that has almost completely detached from the actual job. We’re not testing for competence. We’re testing for endurance, for a narrow kind of trivia recall, and for the ability to smile while being hazed. The problem isn’t just that these processes are annoying. The problem is that they actively select for the wrong people and filter out the exact engineers you claim you need.

The Whiteboard Theater

Let’s start with the classic: the whiteboard coding interview. The premise is simple. Strip an engineer of their tools—no IDE, no Stack Overflow, no docs, no quiet room, no time to think—and ask them to solve an algorithmic puzzle that has nothing to do with the job. Then judge their fitness for a role building maintainable, production-grade systems based on this performance.

This is like testing a chef by making them butcher a live pig in the dining room while you watch, then hiring them to run your pastry station. The skill being tested is not the skill being bought. The environment is a parody of the actual work environment. The pressure is fake. And the problems are often pulled straight from a canon of puzzles that have been circulating for years, which means you’re not even testing problem-solving ability—you’re testing whether the candidate recently crammed “Cracking the Coding Interview” or grinded LeetCode until their eyes bled.

I’ve watched brilliant systems engineers, people who can debug a kernel panic at 3 AM while half-asleep, get rejected because they couldn’t reverse a linked list on a whiteboard in 20 minutes. When, in the entire history of paid employment, has anyone ever needed to reverse a linked list from memory while a stranger watches? The standard library exists. The internet exists. The ability to say “I’d look that up” exists, and it’s a sign of wisdom, not weakness.

The whiteboard interview doesn’t test engineering. It tests performance art. It selects for people who are good at whiteboard interviews. And then we wonder why our teams are full of people who can recite Dijkstra’s algorithm but can’t write a maintainable module to save their lives.

The Take-Home Project That Ate My Weekend

Then there’s the take-home assignment. On the surface, this seems more reasonable. “Here’s a small problem, go solve it on your own time, with your own tools, and we’ll discuss it.” Sounds fair. Sounds like it might actually resemble work.

But in practice, these assignments metastasize. I’ve seen “small” take-home projects that are essentially unpaid consulting gigs. “Build a URL shortener with analytics, a REST API, an admin dashboard, and deploy it to AWS with a CI/CD pipeline.” That’s not a weekend project. That’s a product. And you’re supposed to do it after your actual job, while also maybe seeing your family or sleeping.

The unspoken expectation is that you will spend 20, 30, 40 hours on this thing. The company gets free labor, a dozen candidates all building variations of the same system, and the hiring manager gets to pick the one who had the most free time and the least boundaries. It’s a filter for desperation, not skill. The best engineers I know would look at a 40-hour take-home assignment and laugh, then go back to their actual lives. The ones who complete it are often the ones with something to prove—which isn’t always bad, but it’s not the same as being good at the job.

And then, after you submit your meticulously crafted project, what happens? In many cases, nothing. You get ghosted. Or you get a one-line rejection two weeks later. No feedback. No discussion. Your weekends, sacrificed to the hiring gods, vanish into the void. This isn’t just disrespectful; it’s a signal that the company doesn’t value your time, which is a pretty good preview of what working there would be like.

The Cultural Fit Inquisition

Ah, culture fit. The phrase itself should make your skin crawl. Ostensibly, it’s about ensuring a new hire won’t disrupt the team’s harmony. In practice, it’s a euphemism for “is this person like us?” And “like us” often means “went to the same schools, shares the same hobbies, and won’t challenge our comfortable assumptions.”

I’ve sat in on culture fit interviews where the questions were so vague and subjective that the decision came down to whether the candidate seemed “sharp” or “enthusiastic” or “a good hang.” These are not job criteria. These are vibes. And vibes-based hiring is how you build a monoculture of agreeable mediocrity.

The irony is thick enough to spread on toast. We claim to want diversity of thought, but we hire for conformity of personality. We say we want people who will push back, who will tell us when we’re wrong, but we reject anyone who doesn’t laugh at our jokes or who seems a little too intense about code quality. The best engineers I’ve worked with were often prickly, opinionated, and deeply weird. They cared about the work, not about being your drinking buddy. And they were invaluable precisely because they didn’t fit the mold.

When you hire for culture fit, you’re not building a team. You’re building a clone army. And clone armies are great at following orders and terrible at innovation.

The Trivia Gauntlet and the Hazing Ritual

Some companies favor the trivia approach. You sit in a room, or on a video call, and a panel of engineers fires questions at you like a verbal pop quiz from hell. “What’s the difference between a process and a thread?” “Explain the CAP theorem.” “What’s the time complexity of a hash map lookup?” “How does garbage collection work in the JVM?”

These questions have answers that can be memorized in an afternoon. They test recall, not understanding. They test whether you’ve recently reviewed a “Top 50 Interview Questions” blog post, not whether you can design a system that handles 10,000 requests per second without catching fire.

And then there’s the hazing element. The questions get harder, more obscure, until the candidate breaks. The panel isn’t trying to find the candidate’s ceiling; they’re trying to find the floor, and then push them through it. It’s a dominance display. “Look how much smarter we are than you.” It’s the engineering equivalent of a fraternity paddle, and it selects for people who are either good at trivia or good at pretending to be humble while being humiliated. Neither of those traits correlates with being a productive colleague.

A person sitting alone in a modern office, looking frustrated at a laptop, representing the isolation and stress of broken hiring processes.

What We Should Be Testing

So if all of this is broken, what does a sane hiring process look like? It looks like the actual job. Shocking, I know.

If you’re hiring someone to refactor a payment system, give them a small, anonymized piece of a payment system and ask them to refactor it. Pair with them. Let them use their tools. Let them talk through their thought process. Watch how they navigate ambiguity, how they ask questions, how they handle not knowing something. That’s the job. That’s what you need to evaluate.

If you’re hiring someone to lead a team, have them lead a discussion about a real technical decision your team is facing. See how they listen, how they synthesize different viewpoints, how they handle disagreement. Don’t ask them to estimate how many golf balls fit in a school bus. That’s not the job. That’s a party trick.

If you’re hiring someone to write maintainable code, look at code they’ve written. Ask them to walk you through a project they’re proud of and a project they’re not proud of. Listen to how they talk about trade-offs, about mistakes, about what they’d do differently. That tells you more about their engineering judgment than any whiteboard puzzle ever could.

The goal of an interview should be to simulate the work, not to simulate a hazing ritual. It should be collaborative, not adversarial. It should respect the candidate’s time and intelligence. And it should be designed by people who actually do the job, not by people who read a book about how Google did it in 2007.

The Real Cost of Bad Hiring Processes

Bad hiring processes aren’t just annoying. They’re expensive. They waste the time of your existing engineers, who have to sit in on these circus acts instead of doing actual work. They drive away good candidates who have options and self-respect. And they select for a very specific kind of engineer: the kind who is good at interviews.

Being good at interviews is a skill. It’s a skill that correlates loosely, at best, with being good at engineering. It correlates strongly with having a lot of free time to practice LeetCode, with being early in your career before burnout sets in, and with being willing to tolerate arbitrary nonsense without complaint. None of these are the traits you want in a senior engineer who will own critical systems and tell you when you’re being an idiot.

The engineers you actually want are the ones who will look at your six-hour take-home project and say, “No, thank you.” They’re the ones who will push back on your whiteboard puzzle and ask, “How is this relevant to the work I’d be doing?” They’re the ones who have enough experience and enough options that they don’t need to jump through your hoops. And by designing a process that filters them out, you’re left with the hoop-jumpers. And then you wonder why your codebase is a mess and nobody will tell you the truth.

A team of engineers collaborating around a table with laptops and notes, representing what a real, work-relevant interview could look like.

The Fix Is Cultural, Not Procedural

Here’s the uncomfortable part. The reason these hiring practices persist isn’t that nobody knows better. It’s that they serve a psychological function. They make the interviewers feel smart. They create a barrier to entry that makes the club feel more exclusive. They provide a false sense of rigor, a checklist that can be pointed to when a hire goes wrong: “Well, they passed the algorithm gauntlet, so it’s not our fault.”

Fixing this requires admitting that our process is theater. It requires humility from the people designing and conducting interviews. It requires saying, “I’m not sure how to test for what we actually need, but I’m willing to figure it out instead of defaulting to what everyone else does.” That’s an engineering problem. It’s a design problem. And it’s exactly the kind of problem we claim to be good at solving.

Start small. Pick one role. Design an interview loop that mirrors the actual work. Use real problems, not puzzles. Pair with the candidate. Give them a laptop, not a whiteboard. Pay them for take-home work if it’s more than a couple of hours. Give feedback, even if it’s brief. Treat candidates like humans whose time matters. See what happens.

I’ll tell you what happens. You start hiring engineers who can actually do the job. Your team gets stronger. Your interview process becomes a selling point instead of a warning sign. And you stop wasting everyone’s time on a ritual that benefits no one except the people who sell interview prep courses.

FAQ

Why do companies still use whiteboard interviews if they’re so bad?

Because they’re easy to standardize and hard to challenge. A whiteboard puzzle gives a numerical score, or at least a pass/fail signal, that feels objective. It lets companies process hundreds of candidates without thinking too hard about each one. It’s the fast food of hiring: consistent, scalable, and nutritionally void. Changing it requires effort and a willingness to trust human judgment, which terrifies large organizations.

What’s a better alternative to the take-home project?

A paid, time-boxed work simulation. Give the candidate a real, scoped problem that takes 2-3 hours. Pay them for their time. Let them use their own environment. Then have a conversation about what they built, why they made certain choices, and what they’d do with more time. This respects their schedule, tests the actual skills, and gives you a much richer signal than a 40-hour unpaid marathon ever could.

How do you assess “culture fit” without turning it into a popularity contest?

Define what you actually mean by culture. If you mean “shares our values around code review and testing,” then ask about their experiences with code review and testing. If you mean “communicates well during disagreement,” then have a structured discussion about a contentious technical decision and see how they handle it. Make it about behaviors, not personalities. And if you can’t define your culture in terms of observable behaviors, then your culture is just “people we like,” and you should admit that and deal with the consequences.

Isn’t it risky to skip the hard technical screening? What if we hire someone who can’t code?

The risk is that your current screening doesn’t actually prevent that. Plenty of people who pass whiteboard gauntlets and trivia quizzes still can’t code their way out of a paper bag when faced with a real system. A work-sample test—where you watch someone code a real problem in a real environment—is a far better guard against incompetence than any puzzle. And if you’re worried about missing something, remember that you have a probation period. That’s your safety net. Use it.

A person working calmly at a desk with dual monitors, code on screen, representing the focused, tool-equipped environment where real engineering happens.

Look, I get it. Hiring is hard. It’s scary. A bad hire can set a team back months. But the solution isn’t to add more filters; it’s to add the right filters. And the right filters look a lot like the job you’re hiring for. Everything else is just noise, ego, and wasted weekends. Let’s stop pretending that making someone suffer through an irrelevant gauntlet tells us anything useful. Let’s start treating hiring like the engineering problem it is.