Code review is one of the most important communication moments for a Tech Lead. It’s where you teach, guide, build trust — or accidentally damage relationships. For Vietnamese engineers working in international teams, the language you use in code reviews matters as much as the technical feedback itself.

This lesson gives you the exact phrases that senior engineers use, with pronunciation guides and ready-to-use scripts.


🗣️ Key Phrases to Say Out Loud

Practice saying these out loud — not just reading them silently.

PhraseIPAWhen to Use
”Consider using…”/kənˈsɪdər ˈjuːzɪŋ/Gentle suggestion
”What do you think about…?”/wɒt duː juː θɪŋk əˈbaʊt/Open question
”Nice approach here.”/naɪs əˈproʊtʃ hɪr/Positive reinforcement
”Could you clarify…?”/kʊd juː ˈklærɪfaɪ/Ask for explanation
”This needs to be addressed before…”/ðɪs niːdz tə biː əˈdrest bɪˈfɔːr/Blocking comment
”I’m blocking on this because…”/aɪm ˈblɒkɪŋ ɒn ðɪs bɪˈkɒz/Clear blocker
”Let’s sync on this.”/lets sɪŋk ɒn ðɪs/Request to discuss

Pronunciation focus: The word consider — most Vietnamese speakers say /kɔn-si-đờ/ but English is /kən-SID-ər/ — stress on the second syllable, schwa at the start.


📚 Vocabulary

1. blocker /ˈblɒkər/

Nghĩa: vấn đề chặn việc merge code Example: “This is a blocker — we can’t ship until this is resolved.”

2. nitpick /ˈnɪtpɪk/

Nghĩa: góp ý nhỏ, không bắt buộc (nit = không cần thay đổi) Example:Nit: you might rename this variable to be clearer, but it’s not blocking.”

3. refactor /riːˈfæktər/

Nghĩa: tái cấu trúc code (không thay đổi behavior) Example: “Could we refactor this into a helper function? It appears three times.”

4. address /əˈdres/ (verb)

Nghĩa: giải quyết, xử lý (một comment) Example: “Please address the comments in this PR before requesting re-review.”

5. edge case /ˈedʒ keɪs/

Nghĩa: trường hợp biên — input hoặc tình huống bất thường Example: “What happens with an empty array? That edge case isn’t handled.”

6. lgtm /el-dʒiː-tiː-em/

Nghĩa: “Looks Good To Me” — thường viết tắt khi approve Example:LGTM — great job handling the retry logic.”

7. scope /skəʊp/ (noun/verb)

Nghĩa: phạm vi của PR; out of scope = ngoài phạm vi PR hiện tại Example: “That’s a good idea, but it’s out of scope for this PR — let’s open a separate ticket.”


🎯 Practice Now

Dialogue: Giving feedback on a PR

Read this dialogue out loud with a colleague, or play both roles yourself:


Reviewer (Tech Lead): Hey, I reviewed your PR. Overall it looks good! I have a few comments.

Author: Sure, go ahead.

Reviewer: First — consider breaking this function into two smaller ones. Right now it’s doing two things: validation and transformation. It’ll be easier to test separately.

Author: That makes sense. Is it blocking?

Reviewer: Not blocking, just a suggestion. But this part here is a blocker — what happens if the API returns null? The code will crash. Could you add a null check before calling .map()?

Author: Oh, good catch. I’ll fix that now.

Reviewer: Great. And nice work on the error handling in the retry logic — that’s exactly the pattern we want to follow. LGTM once the null check is in.


Rewrite these harsh comments into constructive ones:

Exercise: Transform these aggressive comments into professional English feedback.

❌ Harsh✅ Professional
”This is wrong.""This might cause issues when X — consider Y instead."
"Why did you do it this way?""Could you help me understand the reasoning here?"
"This is bad code.""I think we can make this cleaner — what do you think about…?"
"You forgot to handle errors.""I noticed the error case isn’t handled — want to add a try/catch here?”

Say the ✅ versions out loud 3 times each.


⏱️ 5-Minute Code Review Drill

Use this script for a quick role-play. Read it out loud, imagining you’re on a video call:

“Hi [Name], I’ve reviewed your PR — thanks for the fast turnaround. I have three quick comments.

First, a nit: consider renaming userData to userProfile — it’s slightly clearer. Not blocking.

Second, I noticed the loading state isn’t reset if the API call fails. This is a blocker — users could see a spinner forever. Could you add error handling to reset it?

Third — and this is the main thing — I really like how you extracted the fetch logic into a custom hook. That’s exactly the pattern we want to use going forward. Nice work.

Once the loading state issue is fixed, I’m happy to approve. Let me know if you want to sync on anything.”

Repeat 3 times. Focus on:

  • Pausing after each point (don’t rush)
  • Sounding warm, not robotic
  • Stressing blocker, exactly, and nice work

💡 The Golden Rule of Code Reviews in English

Critique the code, not the coder.

Say: “This function is hard to follow” — not “You wrote confusing code.” Say: “This approach might cause performance issues” — not “Your approach is wrong.”

In English-speaking engineering culture, how you say something is just as important as what you say. Reviewers who sound collaborative get better code — because authors trust them enough to push back and discuss, rather than just comply silently.


🌟 Today’s Challenge

Open one real PR or code change and write 3 comments in English:

  1. One suggestion (non-blocking)
  2. One question asking for clarification
  3. One praise for something done well

If you don’t have a real PR, write the comments about a past PR from memory.


Tech Lead English drops every afternoon at 3pm Vietnam time — practical language for real engineering situations. 🇻🇳

Export for reading

Comments