ESL Tech
← Portal

Yuri: Code Review English & Modals for Feedback

Student: Yuri (B1)
Duration: 60 mins
Focus: Modal Verbs & Hedging Language
🔊 Shadowing Pacer: Code Review Dialogue

Shadowing Focus: Listen for modal verbs (should, could, must, might, needs to, can) and their strength in feedback.

00:00
Record yourself, then compare with the model
🎯 Key Targets for Yuri (Recycle Focus)

1. Article Omission

Remember: "the router", "the database", "the middleware". Don't drop articles before countable technical nouns.

2. Conditional + Future Tense

No "will" inside "if" clauses: "If I finish the review, I will merge" — not "If I will finish...".

📖 Grammar: Modal Strength Scale for Code Review

Modals show how strongly you feel about feedback. Use stronger modals for critical issues and weaker modals for suggestions.

🧠 Hedging Language — Softening Feedback

Combine modals with hedging phrases to sound more diplomatic:

"I think you could..." "Maybe we should..." "Perhaps you might..." "I'd suggest we could..." "It might be better to..."
⚙️ Game 1: Code Review Simulator

Click a snippet or press "Roll Code Review" to randomize. Yuri must deliver oral feedback using the correct modal for each bug.

CODE_REVIEW_ROULETTE.EXE STATUS: READY FOR REVIEW
Select a snippet or Roll...
Snippet #1 — SQL Injection Risk
users.php⚠️
12$query = "SELECT * FROM users WHERE id = " + $_GET['id'];
12$query = "SELECT * FROM users WHERE id = ?";
You must use parameterized queries.
Snippet #2 — Hardcoded API Key
config.js⚠️
3const API_KEY = 'sk-abc123...';
3const API_KEY = process.env.API_KEY;
You should move the API key to environment variables.
Snippet #3 — Missing Error Handling
api.php⚠️
22$result = $db->query($sql);
22$result = $db->query($sql) or die('DB error');
The error handling could be improved.
Snippet #4 — SELECT * Query
reports.php⚠️
8SELECT * FROM orders WHERE status = 'active'
8SELECT id, name, total FROM orders WHERE status = 'active'
You could specify the columns instead of SELECT *.
Snippet #5 — No Input Validation
register.php⚠️
5$email = $_POST['email'];
5$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
Input validation must be added.
Snippet #6 — Console.log in Production
app.js⚠️
42console.log('User data:', userData);
42// Removed — use proper logging
You should remove console.log statements.
📝 Grammar Bank: Modal Practice

Choose the correct modal for each code review context. Click to reveal the answer.

1. You ___ add authentication before deploying. 👁️
must
"Must" expresses strong obligation — authentication is non-negotiable for production. "Could" is too weak for a security requirement.
2. We ___ optimize the database queries for better performance. 👁️
should (or could)
Both work: "should" is a strong recommendation, "could" is a weaker suggestion. The strength depends on how critical the optimization is.
3. The API response format ___ be standardized. 👁️
needs to
"Needs to" expresses a necessary requirement. "Might" is too weak — standardization is typically required for consistency.
4. You ___ refactor this function — it works fine as is. 👁️
could
"Could" is a weak suggestion for optional improvements. "Must" would be too strong for a function that already works.
5. Password hashing ___ be implemented before launch. 👁️
must
This is a security requirement — "must" is the only appropriate choice for something that is absolutely required before launch.
6. We ___ discuss the architecture further in the next meeting. 👁️
could
"Could" suggests a possibility without pressure. "Must" would be too strong for a discussion topic.

🔑 Modal Strength Quick Reference

Strong (100%): must, have to

Necessary (~90%): need to

Recommend (~70%): should, ought to

Suggest (~40%): could

Possibility (~30%): might

Hedging formulas:

  • I think + modal
  • Maybe / Perhaps + modal
  • I'd suggest + modal
  • It might be better to...
🎤 Game 2: Speaking Challenge — Polite Code Review

Select a scenario and deliver polite code review feedback using hedging language + modals within 90 seconds.

Scenario 01
A junior dev committed untested code.
Scenario 02
Someone used deprecated functions.
Scenario 03
The pull request has no description.
Scenario 04
Error messages are in Russian instead of English.
Scenario 05
The code has no comments for complex logic.
Scenario 06
Someone hardcoded database credentials.

⏱ Speaking Challenge Clock

90

📋 Structure Reminders:

  • Start with a positive opener: "Overall this looks good..."
  • Use hedging: "I think you could...", "Maybe we should..."
  • Match modal strength to severity
  • End with a supportive closing: "Let me know if you need help"
💡 Model Answer
Select a scenario above to reveal a model answer.