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

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 Problem | Impact on Engineers | Why It Persists |
|---|---|---|
| Recency bias | Last month's work overshadows the whole period | Managers don't keep running notes |
| Visibility bias | Loud contributors rated higher than quiet ones | Impact measurement is hard |
| Stack ranking | Teams compete internally instead of collaborating | HR systems require forced distribution |
| Vague criteria | Ratings feel arbitrary and political | Rubrics aren't defined or shared |
| One-way delivery | No opportunity to add context or disagree | Power 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.
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:
- What were your most significant contributions this period? (Link to evidence: PRs, docs, metrics)
- What did you learn or improve at? What's different about your work now vs. six months ago?
- What could you have done better? Where did you struggle?
- 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:
- Listen fully without defending. Let them explain their perspective.
- Ask for specific evidence that supports their view.
- Share the specific evidence that informed my view.
- If there's a genuine gap in my information, I update the review.
- 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.
Recommended reading

The Legacy of Leadership: What Remains When You Leave
The thing people remember is not your architecture. It is not your processes. It is how you made them feel. Reflections on what actually endures from engineering leadership.

What 3 A.M. Incidents Taught Me That AWS Certifications Never Did
Twenty production incidents reviewed: why understanding beats fixing, what certifications actually train, and the habits that keep a team calm at 3 a.m.

An Engineering Leader's Sustainable Weekly Rhythm
A realistic weekly rhythm that balances strategy, people, and operational work — without burning out or losing yourself in back-to-back meetings.

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