As engineering leaders, we make dozens of decisions every week. Sometimes we have to take accountability for a critical production incident. Sometimes we have to manage the risk of delegating a high-stakes feature to a junior engineer. Other times, we are balancing technical debt against delivery speed.
However, some of the most defining moments of leadership don't happen in the codebase or during architecture reviews. They happen in hard conversations.
What do I mean by a hard session?
- A 1:1 feedback session where you have to tell an engineer their recent performance isn't meeting expectations;
- A retrospective where the team needs to unpack weeks of exhausting, high-pressure delivery and missed deadlines;
- A promotion or interview debrief where the decision is a "no," even though the candidate felt ready;
- Or perhaps the hardest one of all: parting ways with a team member.
There is also another side to this that we often forget: hard sessions are a two-way street. The leader isn't always the one initiating the tough talk. Sometimes, we are the subject of the session, and our team is criticizing our technical decisions, our prioritization, or the way we lead.
The real question is: why do these sessions feel so high-risk, and how can we navigate them without sacrificing either the truth or our people?
Three Common Traps When Facing Hard Sessions
When we look at how managers—including ourselves—react to uncomfortable conversations, three behavioral patterns usually show up. None of us fall strictly into one category all the time; depending on our fatigue, project pressure, or relationship with the other person, we might drift between them.
However, each pattern carries a serious systemic cost:
1. The Avoiders
This group tries to prevent the hard session from happening at all. If someone is underperforming or a behavior is hurting the team, they procrastinate, drop vague hints in public channels, or quietly rewrite the code themselves to avoid confrontation.
- The systemic cost: Hidden organizational debt. Team members don't realize where they are falling short. They assume everything is fine until they are suddenly blindsided by a rejected promotion or termination. Over time, this quietly destroys trust.
2. The Sugarcoaters
Sugarcoaters don't run away from the meeting. They schedule it, show up, and smile—but they never say the actual thing that needs to be said. They wrap the core issue in so much praise and polite framing that the real message gets lost.
- The systemic cost: A broken signal-to-noise ratio. The other person leaves the meeting feeling great, completely unaware that there is a critical problem that will cause much bigger damage down the road if left unresolved.
3. The Aggressors (The Harsh Approach)
This group treats every mistake like the end of the world. They turn feedback sessions into courtrooms where there is no room for nuance or recovery.
- The systemic cost: Destroyed psychological safety. Working with this type of leader is exhausting because any misstep can turn into a war. The day after a harsh session, engineers don't learn how to write better code—they learn how to hide their bugs so they don't end up in another meeting.
A Three-Phase Framework for Handling Hard Sessions
At its core, a hard conversation is an error-correction mechanism for human systems. Done right, it improves both the system's output and the working relationship.
A mental model I find useful for navigating these conversations—without falling into avoidance, sugarcoating, or aggression—breaks the process down into three phases: Before, During, and After the session.
Phase 1: Before the Session (Preparing the Mind and the System)
Whether a hard conversation succeeds or fails is often decided before the calendar invite is even sent.
1. Make expectations explicit beforehand
One of the main reasons feedback sessions turn into frustrating, subjective debates is that "good performance" was never clearly defined in the first place. If you never told a Senior Engineer that you expect them to drive design reviews or take full ownership of a module, blindsiding them during a performance review isn't fair. When expectations are clear early on, both of you already know why the feedback session is happening.
2. Accept the short-term discomfort
Let's be honest: giving or receiving negative feedback is uncomfortable for everyone. It is completely normal to feel tense before the call. But as leaders, our job isn't to be liked in every single moment; our job is to unblock the team and help people grow. We have to train ourselves to accept ten minutes of awkward honesty today to prevent months of team friction tomorrow.
3. Scope the issue (Don't generalize the mindset)
When a microservice fails in production, we don't throw away the entire architecture—we isolate the fault. Yet in human relationships, leaders (and team members judging their leaders) often let one bad decision or one weak sprint taint their entire perception of a person.
Once that negative halo effect sets in, trust vanishes, and the person can never win it back no matter what they do. Keep the negative feedback strictly scoped to the specific behavior or decision. Don't let it rewrite the person's entire identity in your head.
Phase 2: During the Session (The Mechanics of the Conversation)
Once you are in the room, the goal is simple: put the truth on the table while keeping the human intact.
4. Be honest and don't bury the signal
Professional environments run on honesty. Don't hide an uncomfortable reality behind vague corporate language.
A trap I personally struggled with for a long time was the classic "feedback sandwich"—instinctively spending the first ten minutes praising the person just to soften the blow of the critique. Appreciation is great, but not when it dilutes the actual feedback to the point where it loses its meaning. Be direct, stick to observations, and clearly state what isn't working.
5. Don't push them into the corner of the ring; preserve respect
This is where overly harsh managers fail. Critique does not require a sharp tone, and receiving criticism from your report doesn't mean they are being disrespectful.
We have to remember that the person sitting across from us is human. They have pride, they have emotions, and it's easy to take tough feedback personally. The goal of a feedback session isn't to back someone into the corner of a boxing ring and keep throwing punches hoping they'll "get better."
Separate the work output from the person's worth. Your tone should send a clear message: "We are not sitting across from each other as opponents; we are sitting on the same side of the table trying to solve a problem together."
6. Look for the missing context
Very often, what looks like "carelessness" or "underperformance" from a leader's vantage point looks completely different from the engineer's seat.
Maybe product requirements shifted three times mid-sprint. Maybe there was an undocumented technical blocker, or maybe they are quietly dealing with burnout. Before delivering a final verdict, ask a genuine question: "Walk me through how this looked from your side." Be ready to update your initial judgment when new context emerges.
7. When you are the one receiving feedback, just listen
As I mentioned earlier, sometimes you are on the receiving end. When an engineer criticizes your technical direction or management style in a 1:1 or retro, the brain's default reaction is to get defensive and explain why they are wrong.
Resist that urge. If you treat critical feedback from your team like a personal attack, that will likely be the last time they ever tell you the truth. Critical upward feedback is a rare gift—it illuminates your blind spots. Instead of defending yourself, ask clarifying questions to understand where your decisions created a bottleneck for them.
Phase 3: After the Session (Building the Future)
A hard conversation doesn't end when you close the Google Meet tab. In many ways, the real leadership work starts right after.
8. Leave room for mistakes
Real learning in engineering always passes through making mistakes. If you tear someone down or strip away their ownership the first time they make a bad call, you don't build a safer system—you just build a team that is afraid to make decisions.
Give people room to fail safely. Help them understand the systemic impact of their mistake, and guide them to a point where they are the ones proactively spotting and fixing their own gaps.
9. Turn the conversation into a concrete agreement
Hard sessions that end with vague advice like "Just try to be more careful next sprint" almost always repeat themselves a month later.
Translate the discussion into observable next steps. What needs to change in the system? Do we need a new guardrail in our Code Review process? Do we need to adjust the scope of their current task? Most importantly, agree on one thing: Two weeks from now, how will both of us know that this issue is resolved?
10. Reset the emotional space and recognize progress
After a heavy conversation, it's natural for an invisible tension to linger between two people. It is the leader's responsibility to signal that the session is over and the working relationship is intact.
Treat day-to-day interactions normally the next day. And as soon as you see the first genuine signs of improvement, acknowledge them explicitly. People need to know they aren't permanently on a "blacklist" in your mind and that their effort to grow is visible.
Where This Model Reaches Its Limit (Patience vs. Avoidance)
Following these principles doesn't mean every problem can be solved with a polite conversation. There is a critical trade-off here that every leader must recognize:
At some point, repeating the same feedback session becomes just another form of avoidance.
If you have set clear expectations, listened to their context, provided a safe environment to learn, and established concrete action items—yet after multiple cycles, nothing changes—scheduling a fourth or fifth feedback session isn't helping anyone. It only drains the rest of the team. At that boundary, the next hard conversation shouldn't be about repeating the feedback; it needs to be about changing roles, moving teams, or parting ways respectfully.
A Quick Checklist Before Your Next Hard Session
The next time you are about to step into a tough conversation—whether you are leading it or receiving feedback—ask yourself these five questions:
- Clarity: Can I state the core issue in one or two plain sentences, or am I hiding it behind polite fluff?
- Scope: Am I addressing a specific behavior/outcome, or am I making a sweeping judgment about the person?
- Curiosity: What context might the other person have that I am currently missing?
- Humanity: How can I frame this so they feel supported in solving the problem rather than cornered in a ring?
- Next Steps: What concrete agreement will we walk away with so both of us know what success looks like next month?
Closing Thoughts
Engineering leadership isn't just about making smart architectural decisions on calm days; much of it is forged in how we handle uncomfortable moments.
We cannot avoid hard conversations. Avoiding them doesn't make the problem go away—it just defers the cost to the future with compound interest. What we can do is learn how to be honest without being brutal, and respectful without hiding the truth.
Software systems rely on monitoring and logs to detect and recover from faults; human systems rely on honest, respectful conversations.
What about you? What was the hardest session you’ve had to navigate—either as a leader or as a team member—and what made it go well (or poorly)?











