Engineering Performance Reviews: Building a Fair Process

How to design and run performance reviews that engineers trust, reduce bias, reward real contribution, and actually help people grow

#performance-reviews#feedback#career-growth#engineering-management
Cover image for the article: Engineering Performance Reviews: Building a Fair Process

The worst performance review I ever received was a single sentence: "Solid performer. Keep it up." After a year of shipping a major migration, mentoring two junior engineers, and reducing our incident response time by 60%. My manager couldn't articulate what I'd actually done or what I should work on next.

That review didn't just fail me—it failed the team. It told me that my manager didn't observe my work closely enough to provide useful feedback. I started interviewing within a month.

When I became a manager, I swore I'd never give a review like that. Building a fair, useful performance review process has become one of my core leadership investments. Here's what I've learned works.

Why Engineers Distrust Performance Reviews

Let me be direct: most engineers view performance reviews as organizational theater. And honestly, in many companies they're right. The problems are structural:

Common ProblemImpact on EngineersWhy It Persists
Recency biasLast month's work overshadows the whole periodManagers don't keep running notes
Visibility biasLoud contributors rated higher than quiet onesImpact measurement is hard
Stack rankingTeams compete internally instead of collaboratingHR systems require forced distribution
Vague criteriaRatings feel arbitrary and politicalRubrics aren't defined or shared
One-way deliveryNo opportunity to add context or disagreePower dynamics discourage dialogue

The cost of a broken review process isn't just unfairness—it's attrition. Engineers who feel their contributions aren't seen or valued leave. And they leave quietly, which means you don't get the feedback that could have fixed the problem.

Chart

The Rubric That Changed Everything

The single most impactful change I made was creating a transparent, shared rubric that defines what "meets expectations" and "exceeds expectations" look like at each level. Engineers can see the rubric at any time—it's not a secret document managers use behind closed doors.

Our rubric evaluates four dimensions:

Technical Impact: What did they build or improve? How did it affect the team's ability to deliver?

Scope and Complexity: What size and complexity of problems did they take on? Did they grow their scope over the review period?

Collaboration and Mentorship: How did they elevate others? Code reviews, mentoring, documentation, knowledge sharing.

Leadership and Influence: Did they shape technical direction? Did they improve team processes? Did they make others more effective?

Each dimension has concrete examples at each performance level. "Exceeds expectations in Technical Impact at the Senior level" means something specific and observable, not a vibes-based judgment.

Continuous Feedback Reduces Review Anxiety

Performance reviews shouldn't contain surprises. If an engineer is struggling, they should know months before review time—with specific feedback and a clear improvement path.

My feedback cadence:

  • Weekly: Brief 1:1 acknowledgment of what's going well and any concerns
  • Monthly: Explicit growth feedback with specific examples and suggestions
  • Quarterly: Mini-review against the rubric dimensions (15 minutes in a 1:1)
  • Annually/Semi-annually: Formal review that synthesizes the period

When I implemented this cadence, review conversations transformed from anxiety-producing evaluations into collaborative discussions about growth. Engineers already knew where they stood, so the formal review became about planning next steps rather than delivering verdicts.

Fighting Bias Systematically

Bias in performance reviews is well-documented and difficult to eliminate entirely. But you can reduce it significantly with structural interventions:

Keep a brag document: I maintain a running document for each direct report with specific accomplishments, shipped projects, and observable behaviors. I update it weekly based on what I observe in standups, code reviews, and 1:1s. This fights recency bias because I have evidence from the entire review period.

Self-reviews as input: Every engineer writes a self-review before I write mine. This ensures I'm aware of contributions I might have missed—especially quiet, behind-the-scenes work like code review quality or unblocking teammates.

Peer feedback with structure: I gather peer feedback using specific questions rather than open-ended "how are they doing?" The questions target our rubric dimensions so feedback is calibrated and comparable.

Calibration with other managers: Before finalizing ratings, I discuss my team's performance with peer managers. Not to stack rank, but to check that "exceeds expectations" means the same thing across teams.

Check your demographics: After calibrating, I review the distribution of ratings by demographic group. If patterns emerge, I investigate whether that reflects genuine performance differences or systemic bias in how work is assigned or recognized.

The Self-Review Process

My self-review template asks engineers to answer four questions:

  1. What were your most significant contributions this period? (Link to evidence: PRs, docs, metrics)
  2. What did you learn or improve at? What's different about your work now vs. six months ago?
  3. What could you have done better? Where did you struggle?
  4. What do you want to work on in the next period? What support do you need?

I give people a week to complete this. Rushing self-reviews produces surface-level responses that don't help either of us. The best self-reviews include specific metrics, links to PRs, and honest reflection on growth areas.

Writing Reviews That Actually Help

A good review is specific, evidence-based, and actionable. Here's my framework for writing each section:

Accomplishments: State the contribution, the context that made it difficult, and the impact it had. Not "shipped feature X" but "Led the design and implementation of feature X under tight timeline constraints, which reduced customer churn by 12% in the first month."

Growth areas: Be specific about the gap between current and next-level performance. Not "could improve communication" but "I'd like to see you proactively communicate timeline risks to stakeholders before they ask, rather than reporting issues after they've escalated."

Development plan: Concrete actions for the next period. "I'll assign you as tech lead for the Q2 project to develop your cross-team coordination skills. We'll check in bi-weekly on how that's going."

Having the Conversation

The review conversation itself matters as much as the written document. My approach:

  • Share the written review 24 hours before the meeting so the engineer can process and prepare questions
  • Start the meeting by asking how they feel about the period overall
  • Walk through the review together, inviting their perspective at each section
  • For any rating below "meets expectations," discuss the specific support plan
  • End with their development goals for next period
  • Explicitly ask: "Is there anything here that surprises you or feels unfair?"

That last question is crucial. If the answer is yes, something went wrong with your feedback cadence. Take it seriously and investigate what context you missed.

Handling Disagreements

Sometimes engineers disagree with their assessment. This is healthy and should be welcomed rather than suppressed. My process:

  1. Listen fully without defending. Let them explain their perspective.
  2. Ask for specific evidence that supports their view.
  3. Share the specific evidence that informed my view.
  4. If there's a genuine gap in my information, I update the review.
  5. If we see the same facts differently, I explain my reasoning and acknowledge the disagreement.

I've changed ratings twice based on evidence engineers presented that I hadn't observed. Both times, my credibility with the team increased because people saw that the process was genuinely open to challenge.

Key Takeaways

  • Build a transparent rubric that defines expectations at each level—engineers should see it anytime
  • Evaluate four dimensions: technical impact, scope/complexity, collaboration/mentorship, and leadership/influence
  • Deliver continuous feedback so formal reviews never contain surprises
  • Keep a running brag document for each report to fight recency bias
  • Use structured peer feedback, self-reviews, and calibration sessions to reduce systematic bias
  • Check rating distributions by demographics to catch patterns
  • Write specific, evidence-based reviews with concrete development plans
  • Share written reviews 24 hours before the conversation
  • Welcome disagreements and update assessments when presented with new evidence
  • The goal is growth and retention, not ranking—reviews should make engineers want to stay and develop

Performance reviews should be the most valuable conversation an engineer has with their manager all year. When done well, they communicate "I see you, I understand your contributions, and I'm invested in your growth." That's not theater—that's leadership.

Comments

    No comments yet. Be the first to share your thoughts.