DevOps
8 min read

Getting Started with Pull Request Reviews

What to focus on when reviewing code, and how to help your team develop solid habits.

Originally published May 25, 2020

Early in my career, I treated code reviews as gatekeeping. My job was to find bugs, enforce standards, and make sure nothing bad got merged. I was pretty good at it—and pretty insufferable.

It took a patient mentor to show me what reviews are really for: coaching teammates. The code is going to get merged eventually. The question is whether the person who wrote it will be better equipped to write the next piece. That's where growth lives.

Daniel Coyle calls this the vulnerability loop in The Culture Code: one person shares a weakness or uncertainty, another reciprocates, and trust deepens. In code reviews, it starts with the reviewer. "I missed this exact bug last week" or "I'm not sure about this pattern either—let's look at it together" does more for a team than a dozen "LGTM" approvals. When senior engineers model that they're still learning, junior engineers stop treating reviews as exams and start treating them as conversations.

What Is a Pull Request?

A pull request is a change you're requesting against a codebase. It includes the modifications you're asking the team to accept into some version of the code—possibly a feature branch or staging environment.

When submitting one, include:

  • Why you're making the change
  • What the modifications do (add videos and images where it helps)
  • Limitations not handled by the change

If you use ticket management (Jira, Linear, GitHub Issues), include the ticket reference for traceability from requirements to code.

Why We Review

Reviews help teams develop habits that lead to maintainable, readable, and reusable code. We coach on community best practices, software design patterns, security, and language-specific optimizations.

Team, teammates, self—in that order.

Reviews aren't about being right. They're about making each other better.

Automate the Trivial Stuff

Once your team is more than one person, you'll hit debates about spaces vs. tabs, curly bracket placement, and import ordering. Don't waste time on this. Use formatters to solve it and move on.

Tools That End Bikeshedding

  • Black — Python's uncompromising formatter
  • Prettier — JavaScript's opinionated formatter
  • Rustfmt — Rust style guidelines
  • gofmt — Go's built-in formatter

These tools align your code with community standards, make onboarding easier, and free up reviews for what matters: design, security, and maintainability.

What to Focus On

Everyone is at a different level each time they open a pull request. Dealing with varying skill levels means:

  • Know the contributor's current strengths and growth areas
  • Decide which lessons fit this pull request, and which can wait
  • Track patterns so you can orient future reviews

Be realistic. Atomic commits are a best practice, not something to fall on your sword over. If someone is working through a tricky bug and commits get messy, let it go. Pick your battles.

Patterns and Anti-Patterns

Design Patterns

  • Prefer composition over inheritance
  • Look for framework-specific anti-patterns
  • Check for appropriate use of abstractions

Testing

  • Expect tests for new features
  • Regression tests for bugs
  • Coverage ≠ quality

Security

  • Check against OWASP patterns
  • Integrate static analysis tools
  • Security is risk management

Self-Documenting Code

  • Descriptive variable names
  • Comments explain "why", not "what"
  • Functions under 25 lines

Pull Request Hygiene

CheckWhy It Matters
ScopeMultiple unrelated changes make it hard to review, root cause, and revert
Title & CommitsShould describe what changed, not be filler ("fix stuff")
DescriptionInclude the why, what, and known limitations
Target BranchHotfix to production, feature to staging—verify it's right

Anti-Patterns to Avoid

Gatekeeping mindset — You're a coach, not a bouncer
Nitpicking formatting — Use automated tools instead
Rewriting their code — Guide, don't take over
Demanding perfection — Done beats perfect. Ship and iterate.

Few people are experts on all of these topics. Don't feel bad if you struggle with any of them. Each pull request is an opportunity to improve and push each other to be better.

That's where growth lives.

Building a review culture?

I've helped teams develop code review practices that actually work. Let's talk about what you're building.

© 2026 Devon Bleibtrey. All rights reserved.