DEV Community

Ivan Borovets
Ivan Borovets

Posted on

How I stopped sounding rude in code reviews (as a non-native English speaker)

My code was fine. My comments were the problem.

I've been a developer for years. English is not my first language — I think in
my native language, I think in code, and English sits somewhere third. And for
most of my career I didn't realize how much that third place was costing me.

The moment I noticed

A while ago I left this comment on a pull request:

this code is bad, u dont handle when api return null. fix pls before merge

I didn't mean to be rude. In my head, this was a neutral technical note:
there's a null-handling bug, it should be fixed before merge. Short, factual,
done. I hit "Comment" and moved on.

The author went quiet for the rest of the day. A colleague later told me the
comment came across as hostile. I re-read it and saw it with fresh eyes: no
greeting, no reasoning, an imperative "fix pls" — it read like a reprimand,
not a review.

Then I scrolled through the same PR and found a comment from a native-speaker
teammate about a very similar issue:

This looks close, but we're not handling the case where the API returns
null — that'll throw downstream. Could you add a guard for it before we
merge?

Same technical content. Completely different reception. He sounded senior.
I sounded angry.

The invisible tax

Once I saw it, I couldn't unsee it. Non-native speakers on engineering teams
pay an invisible tax every day:

The blunt tax. Short sentences with no softening read as aggression in
English. In many languages directness is neutral or even polite. In English
work culture, "fix this" is an order and "could you take a look at this?" is
a request — and people remember which one you send them.

The junior tax. Simple vocabulary and choppy grammar get subconsciously read
as junior, no matter what your actual level is. People conflate fluency with
competence. It's not fair, but it's real — promotions, code review weight,
and who gets listened to in threads are all shaped by it.

The rewrite tax. Knowing all this, I started re-reading every message three
times before sending. A two-line Slack reply could take five minutes. Multiply
by twenty messages a day.

What I tried

Reading messages out loud helped a little. Keeping a document of "polite
phrases" helped a little more — until I realized I was pattern-matching from a
phrasebook like a tourist.

Then, like everyone in the last couple of years, I started pasting messages
into ChatGPT: "rewrite this to sound professional." And honestly — it worked.
The output was good.

The workflow was the problem. Copy the text. Switch tab. Find the chat. Type
the prompt. Wait. Copy the result. Switch back. Paste. For every single
message. It broke my flow so badly that on busy days I just skipped it and
went back to sounding blunt.

What actually worked: removing the friction

The fix wasn't better English or better prompts. It was making the rewrite
cost nothing.

I built myself a small Chrome extension: you focus any text field — a PR
comment box, Slack, an issue tracker, anywhere — press one shortcut, and the
text gets rewritten in place. No tab switching, no prompting, no copy-paste.
The message you were about to send just... becomes the version a senior
engineer would have written.

I gave it three tones, because context matters: a formal one for PR reviews
and technical docs, a friendly one for team chat, and a concise one for
commit messages. The "before" example above, run through the formal mode,
comes out like this:

The provided code lacks null-safety for API responses. This should be
addressed prior to merge — please implement null-checking to ensure robust
handling of null returns from the API endpoint.

That's my actual thought, said the way I wanted it to land.

What changed

The obvious change: fewer awkward moments, fewer "did I sound rude?" spirals
at 11pm.

The less obvious change: I write more. Before, every message in English had a
small activation cost, so I'd stay quiet in threads where I had something to
say. When writing well becomes free, you stop rationing your words. I comment
on more PRs, ask more questions, disagree more openly — because I know the
tone will come out right.

That was the real unlock. The tax wasn't just making me sound worse. It was
making me participate less.

If you're in the same boat

Whatever tool or method you use, the principle that worked for me: don't try
to become a different writer — remove the friction from fixing your writing.
Willpower-based solutions (re-read everything! memorize phrases!) fail on busy
days, and busy days are exactly when you send the blunt message to the wrong
person.

The extension I built is called Softly — it's on the Chrome Web Store and
free while it's early: https://chromewebstore.google.com/detail/nckkpgnjinhedmoojpbelkblefacineb

But honestly, even if you never install anything: re-read your last ten PR
comments as if a stranger wrote them to you. If any of them made you wince —
that's the tax. It's worth fixing, whichever way you choose.


I'm building Softly in the open - happy to answer anything about the
extension (Plasmo + React, Laravel backend) or swap stories about writing
English as a second language in tech.

Top comments (0)