I need to talk about something I’ve been noticing on my design systems team, and I’m curious if others are seeing this too.
We hired 8 engineers last year. 6 of them struggle with async communication. Is this the new skills gap we’re not talking about?
The Pattern I’m Seeing
These are smart, technically capable engineers. They can write clean code, understand complex systems, and ship features.
But their async communication is… rough.
Specific examples:
Vague Slack messages:
- Them: “Build failed”
- Me (internally screaming): Which build? Which branch? What’s the error? What have you tried?
Missing context:
- They post a question in Slack
- No link to the code
- No description of what they’ve tried
- No indication of urgency or timeline
- They expect someone to drop everything and debug with them in real-time
Poor documentation:
- PRs with no description or just “fix bug”
- Design decisions with no rationale documented
- Handoff docs that say “ask me if you have questions” instead of documenting the questions
Immediate response expectation:
- They DM me at 3pm with “quick question”
- When I respond 2 hours later (because I was in deep work), they’ve already asked 3 other people
- Creates duplicate work and fragments knowledge
This Isn’t About Writing Ability
These engineers can write. Their code comments are fine. Their technical writing in PRs (when they remember to do it) is clear.
The issue is understanding async communication as a distinct skill:
- Providing sufficient context upfront
- Anticipating what information the reader will need
- Respecting other people’s time and attention
- Thinking through the problem before asking for help
The Impact on the Team
This isn’t just annoying—it’s expensive:
- Projects stall because questions lack context and require 3 rounds of clarification
- Knowledge gets lost because decisions aren’t documented
- Senior engineers become bottlenecks answering the same clarifying questions over and over
- Remote collaboration breaks down because timezone-distributed teammates can’t help without sufficient context
Research shows that poorly structured remote teams spend 33% more time on coordination. I think async communication skills are a huge part of that gap.
Where’s the Training?
My hypothesis: Most CS programs and bootcamps don’t teach async communication.
They teach algorithms, data structures, system design. Maybe some technical writing. But not:
- How to ask a good question in a distributed team
- How to document a decision so future-you (or future-teammate) understands it
- How to provide context in a Slack message or PR description
- How to structure information for async consumption
We’re hiring people into async-first environments without teaching them the communication protocols.
What We’re Doing About It
We’re creating an “async communication onboarding” module for new hires:
-
Templates for common scenarios:
- Bug reports (include: what broke, expected behavior, actual behavior, steps to reproduce, what you’ve tried)
- Feature proposals (include: problem statement, user impact, proposed solution, alternatives considered, open questions)
- Technical questions (include: goal, context, what you’ve tried, specific question)
-
Communication examples library:
- Side-by-side comparisons: “Weak async message” vs “Strong async message”
- Real examples from our team (anonymized)
-
Feedback loops:
- In code reviews, we also review PR descriptions
- In Slack, we model good responses: “Hey, can you add [specific context] so I can help?”
The Bigger Question
Should we be hiring for async communication explicitly?
Right now our job descriptions list: “Strong communication skills”
But that’s too vague. Should we say:
- “Experience working in remote/distributed teams”
- “Demonstrated ability to document technical decisions”
- “Comfortable with async-first collaboration tools”
Or do we assess it in interviews? (How would you even test for this?)
I don’t have the answers, but I think this is a real skills gap that’s only going to get more important as remote work becomes standard.
What are you all seeing? Is this just my team, or is async communication the skill we’re not training for?