
My name is Paweł, I'm a developer from Poland, and I'm building HEYID — a global chat app where people can talk even when they don't speak the same language.
When I started working on the app, I thought translation would be one of those features that I could add relatively quickly.
I was wrong.
The chat itself wasn't the biggest challenge.
The translation was.
I wanted the experience to be simple for the user.
You install the app, your phone is set to Polish, and you start talking to someone from Japan.
They write in Japanese.
You shouldn't have to open a translator, copy the message, paste it somewhere, translate it, and come back to the conversation.
The message should simply arrive translated into your language.
That sounds easy until you actually try to build it.
I spent about a month working almost exclusively on improving this part of HEYID.
One of the things I wanted to get right was detecting the language the user actually wants to read.
Instead of asking people to manually configure everything, HEYID uses the language settings of the phone as an important part of the experience.
So if my phone is in Polish and someone sends me a message in Japanese, I should see the Polish version.
If they receive my Polish message on a phone configured in Japanese, they should see Japanese.
The idea is simple:
You write naturally in your own language. The other person reads naturally in theirs.
But getting there involved a lot more testing than I expected.
There were problems with short messages.
Problems with slang.
Problems when the message didn't contain enough information to confidently determine the language.
Problems with context.
Problems with translations that were technically correct but sounded unnatural.
And then there was speed.
A chat app can't feel like a chat if every message takes several seconds to appear because the translation is still processing.
I also wanted to do the same thing with voice.
Voice translation turned out to be another completely different problem.
Now it's not just:
message → translation
It's more like:
voice → speech recognition → language detection → translation → translated text / voice
Every additional step introduces another place where something can go wrong.
I spent a lot of time testing different approaches and changing how the system handles messages and context.
Sometimes I would fix one problem and create another.
A translation could become more accurate but slower.
It could become faster but lose context.
It could work perfectly with a long sentence and completely fail with a two-word message.
There were plenty of moments where I wondered if I was making the problem unnecessarily complicated.
But eventually I realized something important.
The goal isn't really to build a good translator.
The goal is to make two people forget that they don't speak the same language.
That's a much harder problem.
HEYID is still a work in progress, and I'm continuing to improve the translation and voice features.
But after spending so much time on this part of the app, I've started looking at translation very differently.
It's not just about whether a sentence is correct.
It's about whether the conversation still feels natural.
That's what I'm trying to build.
If anyone wants to try it, HEYID is live here:
I'd also be interested in hearing from other developers who have worked with machine translation, speech recognition, multilingual apps, or real-time communication.