Review wording guide · Software engineering

Performance Review Examples for Software Engineers

Engineering reviews go wrong in a specific way: the work is real, but the wording is vague enough that it could describe anyone on the team. “Good team player.” “Strong coder.” “Needs to improve communication.” None of those sentences survive the question — evidence? — and none of them help the engineer know what to do differently next quarter.

This page collects wording that does survive that question: behaviour you can point at, in six dimensions that cover most software engineering work. Every example names a unit — a PR, a system, an incident, a date — because that is what turns a compliment into a review.

One warning before you copy anything. The examples below are deliberately specific, and that is the point. If you paste them unchanged, you have replaced one set of generic sentences with another. Swap in your own module names, incidents and dates, or they will not mean anything.

The same sentence is a strength at one level and a gap at another

Before you borrow any wording, fix the expectation. Most disputed reviews are not disagreements about facts; they are disagreements about what the level was supposed to mean.

DimensionJunior (L1–L2)Mid (L3)Senior (L4)Staff (L5+)
ScopeCompletes well-defined tasksOwns a feature end to endOwns a system; sees cross-quarter riskOwns a domain; decides what not to build
Code qualityWrites to the team standard after reviewShips testable, maintainable modulesSets the standard; reviews designs, not just codeMakes several teams’ codebases simpler
AmbiguityRaises what is unclearTurns a vague request into a planStops when the request itself is wrongSets direction when even the goal is unclear
Measured impactTasks land on timeFeatures land and behave as promisedSystem reliability or team velocity improvesA business metric or team capability changes
MentoringSeeks review activelyGuides one intern or new hireRegularly unblocks others; default reviewerHas developed people who now lead work

Code quality and maintainability

Watch out: The failure mode is praising volume — lines written, PRs merged — rather than whether the codebase got easier or harder to change.

Wording that holds up
  • check_circleHer PRs are consistently small enough to review in one sitting, and each one lands with tests that would actually fail if the behaviour regressed.
  • check_circleHe refactored the billing module without changing a single public interface, which is why the follow-up feature took two days instead of the two weeks the old design implied.
  • check_circleShe treats a flaky test as a production bug: when the suite went intermittently red, she traced it to a shared fixture and fixed the cause rather than adding a retry.
  • check_circleHis code is boring in the useful way — clear names, no clever abstractions, and a comment only where the reasoning is genuinely non-obvious.
Rewrites
closeWrites clean code.
editHis modules have no direct dependency on the HTTP layer, which is why swapping the upstream API last quarter touched one file.
Names a structural property and the moment it paid off.
closeCould improve code quality.
editThree of his last five PRs mixed refactoring with behaviour changes, which slowed review; splitting them would cut review time and reduce rollback risk.
Names the pattern, the count, and the cost — and the fix is obvious.

Delivery and execution

Watch out: “Shipped on time” is not evidence unless you say what was committed to, what changed, and what was renegotiated rather than quietly dropped.

Wording that holds up
  • check_circleShe committed to a two-week cut for the search rewrite, flagged a one-week risk the moment the index migration proved slower than expected, and still landed the core path on the original date.
  • check_circleHe split the notifications migration into five independently deployable steps, so when step four slipped, the first three were already in production and delivering value.
  • check_circleWhen the vendor SDK turned out to be unusable, she proposed an alternative within the same week rather than absorbing the cost silently.
  • check_circleHis sprint commitments have held for six consecutive sprints, and both items he dropped were explicitly renegotiated with the product owner rather than rolled over.
Rewrites
closeAlways delivers.
editDelivered 9 of 10 committed items this half; the one slip was raised three weeks before the deadline with two options attached.
A ratio plus the behaviour that made the miss survivable.
closeSometimes struggles with deadlines.
editTwo of his four estimates this half assumed no interruptions; adding a buffer for on-call weeks would make the commitments realistic.
Locates the cause in the estimate, not the person — which is actionable.

Debugging and incident response

Watch out: Separate “was in the room” from “shortened the outage”. Only the second belongs in a review.

Wording that holds up
  • check_circleDuring the checkout outage he took incident command, kept the timeline in the channel, and had a rollback decision made in eleven minutes.
  • check_circleShe found the cause of the intermittent 500s by reading the query plan instead of adding more logging — the fix removed a full table scan.
  • check_circleHe wrote the postmortem himself, and the action items he proposed shipped two weeks later: the same failure mode has not recurred.
  • check_circleShe is the person who says “let me reproduce it locally first” before anyone starts guessing, which has prevented at least two wrong fixes.
Rewrites
closeGood at fixing bugs.
editReduced on-call escalations from the payments service by fixing the three recurring causes rather than the individual symptoms.
Moves the claim from activity to a trend.
closeHandles pressure well.
editIn the February incident he kept the customer-facing updates factual and on schedule, which support cited as the reason ticket volume stayed manageable.
Names the observable behaviour and who felt the benefit.

Technical design and architecture

Watch out: Review the quality of the decision, not whether you personally liked the outcome. A design that documents its rejected alternatives is reviewable; one that does not is a preference.

Wording that holds up
  • check_circleHer design doc for the event pipeline listed the two alternatives she rejected and why, which let reviewers challenge the reasoning instead of the conclusion.
  • check_circleHe chose a deliberately unglamorous queue-based design over the event bus he wanted, because the team had no operational experience with the latter — and it has not paged anyone in six months.
  • check_circleShe scoped the migration so every step was reversible, which is what made the one-hour rollback during cutover a non-event.
  • check_circleHe pushed back on building a custom search index and showed the numbers that made the existing database sufficient for two more years of growth.
Rewrites
closeStrong technical skills.
editHis design for the sync service replaced three bespoke integrations with one config-driven path, removing roughly 400 lines of duplicated code.
One design decision, one measurable consequence.
closeDesigns could be simpler.
editTwo of his last three designs introduced a new service where a module would have done; starting from the smallest deployable unit would shrink the operational surface.
Counts the pattern and offers a concrete alternative heuristic.

Collaboration, communication and code review

Watch out: Kindness is not the same as usefulness. A good reviewer makes other people’s work better and says so in a way they can act on.

Wording that holds up
  • check_circleHis review comments separate “this is a bug” from “this is a preference” and label which is which — junior engineers on the team cite this as the reason they ask him for reviews.
  • check_circleShe wrote the onboarding doc that takes a new engineer from zero to first production deploy in three days, and keeps it current as the setup changes.
  • check_circleWhen the product requirements were ambiguous, he wrote a one-page summary of what he understood and asked for corrections before writing any code.
  • check_circleShe disagrees with the team’s testing strategy openly in review and then commits fully once the decision is made — no passive resistance in standup.
Rewrites
closeGreat team player.
editHe picked up two unowned items from the platform backlog last quarter and drove both to completion without being asked.
“Team player” is a label; this is an event with a count.
closeCommunication needs improvement.
editHer status updates arrive after a blocker has lasted a week; posting it when it appears would let others unblock her sooner.
Specifies the timing problem and the changed behaviour.

Growth, mentoring and technical leadership

Watch out: Mentoring is not “being nice to juniors”. Look for the people who got measurably better because of a specific person.

Wording that holds up
  • check_circleHe mentored two engineers through their first on-call rotation, and both now handle pages independently.
  • check_circleShe runs the weekly design review, and since she took it over, fewer designs reach implementation with unresolved questions.
  • check_circleHe introduced the ADR practice the team now uses; the last three architecture debates started from a written record rather than from scratch.
  • check_circleShe gave the talk on the incident process that the SRE team adopted for their own service.
Rewrites
closeShows leadership potential.
editHe has been the de facto owner of the CI pipeline for two quarters and made it fast enough that the team stopped batching merges.
Ownership plus the effect on how everyone else works.
closeShould share knowledge more.
editHer project documentation lives only in her head and her branch; a short handover note per feature would let others cover her leave.
Converts a vague instruction into a named artefact.

Four rules that matter more than the wording

Every sentence carries evidence

If you cannot attach a specific event, date or artefact to a claim, delete the claim. “Consistently reliable” means nothing next to “no missed on-call handovers in six months”.

Balance each dimension, not the document

A review that is uniformly positive reads as disengaged, and one that is uniformly negative reads as a case for dismissal. Give at least one concrete strength and one concrete development area per dimension that matters for the level.

Describe behaviour, not character

“Interrupts people in design review” is usable feedback. “Is arrogant” is a judgement the engineer cannot act on — and one that tends to attract bias complaints.

Calibrate the expectation to the level

The same behaviour can be a strength at L2 and a gap at L4. Shipping a feature independently is the whole job at mid level; at senior level the question is whether the system held up afterwards.

Questions that come up when using examples

Can I use these examples in my own self-review?

Yes, with two changes. Switch the subject to the first person, and replace the third-party evidence with something a reader can verify — a PR number, a migration you led, an incident you commanded. A self-review that borrows the wording but not the evidence reads as inflated, which is worse than writing plainly.

What if an engineer’s work does not fit these six dimensions?

Add a dimension. These six cover most product engineering work, but a platform, security or data engineer may need different ones — release safety, data correctness, cost efficiency. The structure matters more than the categories: name the dimension, state the expectation for that level, then attach evidence.

How do I avoid bias when writing from a list of examples?

Anchor every sentence to evidence before you write the judgement, and write the evidence section first. Examples cannot detect bias for you — they only make it easier to spot a claim with nothing behind it. Peer calibration, where managers compare drafts for the same level, catches the rest.

Should I write a rating, a paragraph, or both?

Follow whatever your process requires. Many organisations expect a written narrative plus a rating against weighted objectives; others want the scorecard only. If you need both and are short on time, write the evidence first and let the narrative and the rating fall out of it, rather than writing the rating and reverse-engineering the justification.

Turn the wording into the full review

Paste your raw notes about the engineer — what they shipped, what broke, what they unblocked — and the generator drafts the narrative against the level and tone you pick, or scores the work against weighted objectives and produces a letter grade with a written summary. Free to use, five drafts a day, no signup required; edit the draft in the browser and export it as PDF or Word.

Open the generatorarrow_forward

AI-generated drafts. Review and edit before use. Not a substitute for HR, legal, or employment advice.