How Bumble Does App Localization – Alex Timin

How does Bumble do app localization differently from other companies? Find out in this interview with Alex Timin from Bumble.

Share:

Share on facebook
Share on twitter
Share on linkedin

How does Bumble do app localization differently from other companies? Find out in this interview with Alex Timin from Bumble.


Andrej Zito 

Alex, welcome to the podcast.

Alex Timin 

Thank you. I’m doing…

Andrej Zito 

How are you doing my man?

Alex Timin 

Not bad. Quite good today.

Andrej Zito 

First of all, like, should I call you Alex? Or do you prefer Alexei?

Alex Timin 

You can call me both, both, whatever you like.

Andrej Zito 

Okay. So the funny thing is that, you’re not the first person who has reached out to me to come to the podcast. So thank you very much for making my life easier. And I’m very happy that you reached out to me, because I don’t think, when was the last time that I had a really, let’s say, technical discussion here on the podcast? So, I think it will be something good for the audience to maybe show them something different, something more technical? And maybe we can start with saying where exactly you work and who do you work for?

Alex Timin 

I’m from Moscow, which is in Russia. And I’ve been working for Badoo and Bumble. Bumble operates both Badoo and Bumble. And it’s great technical brand, here in Moscow. Every, everyone knows Badoo, for example. And Bumble, everyone knows the tools, which were created by our engineers. So it’s quite, it’s great to work this company.

Andrej Zito 

How did you, how did you first find out about this company? Because you mentioned that the people in Russia know about Badoo and Bumble as like this tech, I don’t know. I don’t want to say giant, but like someone who’s in front of the, the, the tech leadership. But, but what makes them so so great? Like, how do they, do they tell everyone like the students that we are so great? Or do they make their tech available to other people? Like is it an open source thing, or?

Alex Timin 

We attend a lot of activities. Every conference, for example, we prepare several speeches, and reports and present them. We write a lot of technical articles. So almost every engineer knows about our company. That’s how we achieve it.

Andrej Zito 

Right. So this is this is part of part of the activity. Yes, podcasts? Yes. Maybe, maybe for some people, I think maybe it would be good to just briefly tell them what is Bumble? Because I’m not sure that everybody actually knows what it is.

Alex Timin 

Bumble is an application where people meet each other. Where, when, where women make the first move.

Andrej Zito 

Yes, yes. I think that’s the distinction from Tinder. Because this one is where the ladies have to first go, I would say. I think the way it works, because I’m not going to lie, I tried it before in Vancouver. I think the way works is that is that you still do the the normal swiping: swipe left, swipe right. But once you have a match, it’s the, it’s the lady that needs to first initiate the contact, right? Within a certain time, I think yeah.

Alex Timin 

Yes.

Andrej Zito 

Okay. So when we were discussing the topic for this podcast, for this episode with you, I think the idea was you would walk us through a process of let’s say, we have a new feature for Bumble, and how it would make its way to users internationally.

Alex Timin 

Yes, yes. Okay, let’s go.

Andrej Zito 

Okay. Yeah, maybe maybe before we start just my usual question that I normally ask people, how did you get into localization? Did you end up in localization because of Bumble? Or did you have any tinkering with localization before?

Alex Timin 

I knew nothing about localization before Bumble, but when I was offered to work in localization, I just decided to do it because it was very interesting how everything works. How, how just regular text becomes an international text and is displayed in different locations in the application.

Andrej Zito 

Did you join the company straight as a developer for localization tools, or did you first work somewhere else and then you moved into localization?

Alex Timin 

First, I worked on access control system and photo moderation system. But later, I moved into the localization department. And I’ve been working in this department for for almost six, six years.

Andrej Zito 

Right. Okay. Maybe, maybe one thing before we get into the whole process is, from what I understand, you guys, even mentioned it in the beginning, you guys sort of have this, your own tools. Did somebody in the beginning make research, like market research of what the other tools are available in the market and then you decided to actually develop everything on your own? Like, what would be the the reason why you decided to do your own tools, instead of using something that’s already available?

Alex Timin 

Now, that’s a great question. And, that’s all about process speed, flexibility, quality, security, and saving costs. So, before you start the development of internal tools, you should consider different opportunities, which are available on the market. And for now, internal tools work best, especially in terms of localization.

Andrej Zito 

Are there actually any tools that you use that are commercial, or is everything like 100% developed internally?

Alex Timin 

Localization tools 100% developed internally. We tried and examined some commercial tools, but we decided to stick with our own. And, if your app can be translated and checked, for example, by two employees, you definitely don’t need a sophisticated localization system. But in our case, we have so many custom solutions. For example, screenshot generation out of design files. Then hot update functionality for mobile devices, and live shots. This still allows us to check screenshots of every application scenario in every language. Some of them are available in first party solutions, but some of them are not. That’s why we developed internal tools. Right. It’s, it’s developed, the active development is finished. Now we just support it. Maintain.

Andrej Zito 

Okay, good. So I think that as we walk through the process, I think it would be a good idea where, maybe you can share how some of your tools like, help the process. So I guess we can just get started, because I think it’s going to take us a little while. I was actually thinking about like, what kind of feature we’re going to, let’s say, imagine that we’re developing. Since what we said, the the specific thing for Bumble is that the ladies have their first go. What if I suggested that, I’m pretty sure there’s like an International Men’s Day, what if there was a feature where on this specific day, it would reverse the functionality? So on this day, the guys would have the first go.

Alex Timin 

Okay, first we have to start with the requirements. And at this stage, we prepare the product requirements document, where we describe every idea and how it should work. After that, we add everything is needed for development into this PRD. For example, texts. We add texts, we approve them, which means that we check that the texts are correct. And they will be okay in that particular market. Right. For example, before you release any text, you have to be sure that this text is not a violation of rules. This is just a good text, which will reflect the same idea as you wanted to see.

Andrej Zito 

We’re still talking about the source language, right? Only.

Alex Timin 

Yes, yes. Yes. The PRD and this is about source language. Right. Before you start translating, you have to choose your source language. If most of your team understand English, it should be English. If it’s Russian, it’s definitely should be Russian.

Andrej Zito 

So what is it in your case? Is it English?

Alex Timin 

In our case, it’s English and it’s International English, because we have an office in Great Britain, in London. And there’s British English, and we have our office in America. So there is American English. So, international English.

Andrej Zito 

Yeah. Are you thinking at this stage about internationalization? Like you mentioned, like if the text doesn’t violate any rules. But before that, we were talking about the features. Let’s say that somebody, you have any specific person who looks like okay, like what Andrej suggested, and what we’re going to implement right now, actually wouldn’t work, I don’t know, in some feminist country? Or something like that? Or does it like when it comes to the features, like what it should do? Can it be affected by certain countries? Or is it only once we get to the, let’s say, the text level, where it can have implications of yes, this could work in those countries. And no, it wouldn’t work in some other countries.

Alex Timin  

Every idea comes from product managers, and they investigate the markets and they know if it works or not. So they have initial idea if it works. After that, we have to analyze texts and approaches. Some of our localization managers investigate different languages. For example, Mexican Spanish, how’s it different from Spain Spanish? And what if we show a Mexican Spanish person, Spanish translation? Will they understand it? So we have to consider all of these things.

Andrej Zito 

And so for the text mentioned that you check, like, if it’s going to be appropriate, are we still just only checking if the source text is going to be okay in certain countries?

Alex Timin 

Yes, we prepare English texts. We approve them, we say that they are appropriate. And after that, we are ready to send them for translation. In the, in the PRD, we have like some table. This is a table which consists of all the text which should be used in the final application when we implement this functionality. And as soon as all texts are approved, with send these pairs, it will be like some table to our localization managers. And very quick, one of them has all the tests into the system. It takes just minutes. And after that, we can start development.

Andrej Zito 

Okay I’m on pressing pause. I have I have a question about this. I think we talk when we talk about the the PRD document from, from when I was checking your article, is it really just the word document? Or do you have like a specific system where you describe these new features and lexeme table?

Alex Timin 

It can be a Word document or a Google Sheet or a Google document or just a wiki page. But this document should have all the required parts. So description, explanation and the legs and table.

Andrej Zito 

That’s, that’s a little bit interesting to me, because I was under the impression that you were like this, you know, this, this, this tech company and you have pretty much a tool for everything. But for the PRD, you’re still sticking to a Word document. Is it maybe because like a lot of people can easily, like comment? It’s like easier to have a discussion about the features?

Alex Timin 

Yes, yes, of course, of course discussions are very easy. You don’t need to make things complicated, more difficulty, complicated.

Andrej Zito 

Right. One more thing was that, so you mentioned that you, you already draft these strings and you have them approved, but how about the design of these new features? Is this already done? As you do the, as you I mean, as you create the source strings? Or no? Because otherwise to me, it sounds seems like you know, like you’re creating the strings without the, let’s say, the visual context like where it would be placed and how much space it would need and so on.

Alex Timin 

They are created in parallel. But at the later stage, we have to ensure that everything fits whatever texts. For example, the text for a button should not be much longer than that button. And before we start the development, the design is already prepared. And the texts are approved, and the functionality is ready to be implemented. So there is no, there are no translations yet, but we can start development.

Andrej Zito 

Are you using pseudo localization, by any chance? Or no?

Alex Timin 

Sorry, pseudo?

Andrej Zito 

Pseudo localization? Yeah, so it’s when you sort of like, like, RNG, you know, like you randomly like, replace the source string, with some extended characters. You maybe extend the length of the string. So it creates something that’s that, it’s not a readable text but it’s sort of like simulates how it would look like after translation. So the text can be longer, it has these extended characters, and then you basically, you can try to see if the pseudo localization with those garbled characters actually fits your design and if it doesn’t break any functionality.

Alex Timin 

We don’t do this localization at the translations stage, but our translators have a special tool, which can generate screenshots for them with the translation, where they just provide. So for a German translation, German translator, type something, and the tool can generate a preview for them.

Andrej Zito 

Right. Yes. Okay, so let’s let’s, let’s backtrack a little bit, because it’s my fault that we’re just jumping around. So I think that after you mentioned that we have this document ready and the lexeme table as well, then it goes to the localization managers, and they put it into a system. So what kind of system are we talking about? Is that this is like your own TMS solution? Sort of, or?

Alex Timin 

Yes, it’s our in house solution. I’ll try to describe it. So it’s just a web page, where a special text area, where you can paste the text, and you click the Save button, and every text is editing to our system. After that, developers can assign a unique string text identifier and use the texts into the source code.

Andrej Zito 

So this is how you separate the, the resources from the from the code, right? So you can localize it.

Alex Timin 

Yes, you can translate, and then you can develop.

Andrej Zito 

So how did the localization managers actually load up the strings into the system? Do they just like, copy the all the segments? Does it like detect, I don’t know, like line breaks? So that it like, does the proper segmentation or?

Alex Timin 

They do it manually.

Andrej Zito 

Manually? One, one string by string? Really?

Alex Timin 

One, one string by string. Yes, yes, yes.

Andrej Zito 

Okay. All right. So then it’s in the system. And it’s assigned the IDs from the developers. And then is that when you start the translation?

Alex Timin 

Yes. And after that, you can start translation. Now development. And every text, every text editor like them, it should be assigned, should be linked to the ticket, Jira ticket. That’s how we, that’s how we track change.

Andrej Zito 

Right. So the system that you mentioned is mostly just to do the translation for the translators, but the actual workflow, and what is happening with the lexemes, that’s on the Jira system. Is that correct?

Alex Timin 

We use Jira to track change and to, and to know when to deploy the change. Because every functionality we release consists of two parts. It’s the source code, which is in PHP, for example, and the translations, which are in different languages, and we have to deploy them at the same time. So when we deploy a certain source code, we find the related JIRA ticket. And that’s, that’s how we find the related license for the source code. And we will list them simultaneously. Otherwise, source code won’t be working on production. Got it. Now they also we use these links to Jira tickets for our dashboard, where we can see all tasks which are in progress. Because we have to finish translations and updated to be able to release the functionality. And we also can see on this dashboard, which languages are too slow. So that’s how we use Jira.

Andrej Zito 

Right. So is that how the localization managers, let’s say, push the translations to the translators? Is it through the Jira ticket? How they notify them to start the translation? Or is it through that special system of yours?

Alex Timin 

We use Jira just for releases and for localization managers, just to control the overall release cycle. And our translators are notified by our custom notifications, our customer notification system, and they can translate texts as soon as we add them into the system.

Andrej Zito 

So the system, you were referring to the one that you created, right?

Alex Timin 

Yes, yes, yes. Okay. It looks like, for example, a German or Russian translator looks at the back page where their translation cue is shown. Just texts, which should be translated.

Andrej Zito 

One thing that I’m curious about is from what I read, that you are using this collaborative translation platform? Is this what we’re talking about? Because that sounds like crowdsourcing? Are you crowdsourcing everything? Or do you have crowdsourcing only for specific cases? And I don’t know, let’s say if you’re translating some important UI strings, then you have, let’s say, dedicated translators, which are working on certain languages.

Alex Timin 

We use this platform, the collaborative translation platform, just for those of our users who, who is willing to help, to help us translate our products. It is just help to our professional translators. So we don’t translate everything, isn’t this crowdsourcing platform. But we translate something, and it depends on the votes. So how it works. If you want to translate something, you just login to this platform, and your translation or vote for the existing one. And, for example, if a translation gets six votes for Russian, for example, it can be reviewed. Reviewed by our translator and used as the default translation.

Andrej Zito 

So, so, so that so the crowd can actually overpower the the translators own translation?

Alex Timin 

Sorry, what do you mean?

Andrej Zito 

So let’s say let’s say, I’m not sure if I get this right. So let’s say a string goes into translator, right, your professional translator. They do the translation, but then through the through the collaborative translation platform, the active power users, they come up with their own translation, and they upload it. So would it be still the decision of the translator and maybe they can be like, okay, I prefer the translation from the crowd better my own translation? Or is there a third party which maybe makes the decision if it’s between the professional translator versus the crowd?

Alex Timin 

Let’s say the crowd, the crowd translation should appear before our internal translator provides a bit of translation. Yes. And this platform works well, for languages like for example, Japanese, Korean, because we have some translators company, but not that much. We have only seven, seven translators which translates everything to, we call them main languages, which is French, Spanish, English, Russian, Italian.

Andrej Zito 

Italian?

Alex Timin 

Yes, Italian. So we translate in main language, into main languages by our own translators, and everything is translated within a couple of hours.

Andrej Zito 

How much time do you, well, you just mentioned that it’s translated within a couple of hours? Is that how you normally expect the translations to be ready? Because from what I understand, the development is running in parallel. So do you normally expect the translations to be done faster than the development? Or is the development that fast as well, you can pretty much dish out the features very, very fast?

Alex Timin 

First, we expect that every translation will be ready within 48 hours. And we don’t expect that development will be finished within the same amount of time. That’s why we have to check that everything is translated before we release. So when we release when the source code is ready, and we’ll check that the translations are ready to… sorry but what was the second question? The second part?

Andrej Zito 

I don’t know but I have another question. So, so, so when we’re talking about the translations, previously, you mentioned something about screenshots? I’m not sure if this comes at a later stage. But since the development is, is sort of like still in progress, what context do the translators have when they get the strings for translation? Do you, do you share with them maybe the design files, the PRD? Or what do they have?

Alex Timin 

We always provide text description and add the screenshot. So we always specify the context where this translation that will be used. We do this on the stage when we have all the text into our system. So the localization managers not only add the text into the system, but also provide context. And we can, I hope, somebody smarter. We can generate localized screenshots out of design files. We don’t need to wait for development to be finished.

Andrej Zito 

Yeah, maybe, maybe explain how that thing works. Like what, what design tool to be used, like, my sketch, or your own thing?

Alex Timin 

We have the ability to generate screenshots out of sketch files. Regular sketch file is just a zip file with json, so we can unpack, amend the strings and type back, back into z and generate previews.

Andrej Zito 

Didn’t know that. Okay, so so the translations once they’re finished, do you have any quality process in place? Is there someone who checks the translations?

Alex Timin 

Yeah, sure, we have quality check. But we start checking translations just after they are added. So when translator provides the translation, we validate the translation, because we don’t want to miss any HTML tags. We don’t want to miss any variables, or with or we don’t want to variable names to be changed.

Andrej Zito 

So these are like automated checks?

Alex Timin 

Yes, automatic checks. And we also warn our translators, if their translation is 30% longer than the original text. That’s how we validate. So there is, there’s always the possibility to generate a screenshot and project what will be shown in the end. For example, the source code is ready, the development is finished and we have to check for localization. We can make screenshots of the test application and to send them back to translators and ask them, Do you like how it looks like? And they can reply Yes, we like or no, we don’t like. Let’s try with another translation. We have a special tool for this process. So where you can upload screenshots and ask translators and also, we have the tool, which is called Live Shots. This is an automation, it makes screenshots constantly, weekly, for example. And after that, you can go into a dedicated interface and check every scenario, every process you are interested in. For example, how our users see the process of purchasing of a special service. So this is the first screen, this is the second screen, the third screen and the final screen. And you can check this process on an, in another language.

Andrej Zito 

Right, so this is automated, right? The screenshot creation.

Alex Timin 

Yes, the screenshot, this screenshot creation is automated. And every our product manager has access to the system. So everything is controlled by everyone, starting from the translator. Right, the localization managers, localization managers, so yes, after that, we also have a bit Jendayi stage, where our QA engineers click, check every pop up, every, every piece of our application or a web application.

Andrej Zito 

Does that happen after the translation is already like in, I don’t know, some staging area? Or like, which part does the QA come into play?

Alex Timin 

QA comes into play when everything is in development. So it also can be on staging. Usually, we check our our functionalities twice: when they are in development and when they are on staging. So this is just how can the process looks like.

Andrej Zito 

One more thing that I was interested in, was previously mentioned that for some of the languages, you don’t have the people in house like the translators, like for Korean or something like that? That’s where you utilize the crowd a little bit more. So are they also part of the review process? That they get the screenshots?

Alex Timin 

Yes, yes, yes. They’re parts of the process. And they part of your process, they are the only people who know how translations should look in their language. For example, almost no one understands Korean in our company.

Andrej Zito 

How did you pick the the people from the crowd? Do you have like some criteria? Is it like anyone, anyone can just volunteer and you rely on the power of the majority? Let’s say that.

Alex Timin 

We just send… I have a story for you, which took place in Mexico. We wanted to translate our apps into Mexican Spanish. And we asked our users to help us. We sent the notifications. Please help us translate to, in return for credits, which can be spent in our applications. And almost 5000 texts were translated just in two days. I think we utilized greatly the crowdsource power, power.

Andrej Zito 

So that’s that’s maybe the people who contribute to the translation process. But can people who are just users report translation issues when they’re using the app in life? Like they’re not part of the process in any way, but I’m just swiping left, right and I see a problem. Can I report it somehow or how does it work? Like, like a feedback from the actual, let’s say final end users?

Alex Timin 

Sure you can report but we don’t choose crowd translators on any condition. We just ask all our users to help. We did that when we wanted to translate everything into Mexican, but now we send notifications only to those of them who are registered on that collaborative translation platform. So they want to translate, and we give them the possibility to do it. Yeah, we notified them.

Andrej Zito 

Okay, maybe now let’s let’s dive a little bit deeper into the AB testing, because to me that it’s something that I actually was proposing to one bigger corporation before when I was working with them. And it didn’t go anywhere. So, so tell me something about AB testing, how it works in practically like, what translations would you AB test? How does the AB testing work, how you measured the results, and so on.

Alex Timin 

Sometimes you need to identify which is translation, which of translations is the best? So you have to and you can choose, and you can run an A B test.

Andrej Zito 

And at what time would you would you not be able to choose? Because so far I sort of understood that there’s always this this professional translator, who can make the decision? Or is it when that one person cannot decide that when they use the AB testing? Or in which case would you have two competing translations? I can imagine it like if you if you do the crowd translation, that maybe the votes are more or less equal. And that’s when you would want to AB tested. But if you have the proper professional and stuff, do they do they not have the, maybe they do have the power to decide which translation to select. But is it maybe when they’re not decisive about translation that they want to do the AB testing?

Alex Timin 

Sometimes it’s possible to translate the same idea using different tone of voices, for example, right. And you have to test which kind of force you should be using with your users, and how it affects the user experience. So that’s why you have to try first and show users different variations, different variants. And after that, you just count, for example, amount of clicks. And based on that, you decide which translation, translation wave you should use as default.

Andrej Zito 

Is it, is it usually just A versus B? Or can it also be multiple variants?

Alex Timin 

ABC? Yes, yes, multiple variants are possible. And surely we test multiple variants.

Andrej Zito 

And how is the, how this this these A B, I mean, how do you select the groups that, let’s say, see, the variant A? Is it all random? Or do you have any systematic approach?

Alex Timin 

Yes, we have special tools where you can set up rules, for example, this text should be shown to users who are 27 years old, live in Germany or Spain and speak this language.

Andrej Zito 

Got it. What is the like the minimum criteria for A B test to be considered valid? Like probably to have a minimum number of users that are shown these variants?

Alex Timin 

Yes, it’s a number of users. I don’t know the exact number. And I think it’s, it varies from from a test to tests. So but basically, yes, it’s number of users, 1000s, 1000s of users.

Andrej Zito 

Yeah, I think I think that’s a, that’s a good idea. I think I haven’t seen it anywhere else used practically. People would actually use A B test to determine which translation is better. I think that’s actually one of the things where the other people could try something new because normally it’s really just that people rely on just on few individuals that say, okay, this is a better translation. But I think if you just show it to the users and let them decide instinctively, which one is better to which, with which translation, they may be engaged more. I think it makes a lot more more sense. Okay, so that’s, that’s maybe the AB testing. So that assumes I guess that that everything has been already deployed, but maybe wanna talk about how the deployment works of everything.

Alex Timin 

Okay, okay, I start. So, deployment team, we have different approaches for different platforms, because it’s very easy to deploy translations for server side, or for web version. Because we need to deploy the translations into our servers we bought. And we have different approach for mobile applications, where we can either create a new build, release it through the App Store or Google Play. Or we can also send a hot update to every our users and update their translations. And now we can talk about hot updates, for example.

Andrej Zito 

Yes, yes. I was just going to ask about it. Like, is that your is that your own custom solution? Or is that something that all the mobile developers know about this? I don’t know what it is.

Alex Timin 

It’s our custom solution. We, every instance of our application checks on startup, if there are new translations available for downloading. Because every instance of our application knows there’s an ID, I mean, translation merchant ID. So they send this version to this server side and the server side responses, if there is something new for the client. If there is a then, and the client can download new version of translations and use it. And it takes three days to update 90% of our clients.

Andrej Zito 

Right. So that’s, that’s like, maybe let’s see the frequency of how they use their app. And it triggers on the launch right? Of the app?

Alex Timin 

Yes, yes. When you launch the app, it asks our server, if there is something new.

Andrej Zito 

Does that, does the update happen in background? Or is the user aware of that?

Alex Timin 

Oh, no, no, everything happens in background.

Andrej Zito 

So it, does it mean that through this whole update, you can also push updates to strings that would normally have to be updated through the build update that goes through the stores? Or are those things separate? Because in this case, I’m not sure why you would have to do the regular update through the store. If you can do everything through the hot update.

Alex Timin 

You have to do regular update through the store, if you want to deliver a new functionality, right. Yeah. And that’s all. Every text can be updated using the update functionality.

Andrej Zito 

I see. I see. Okay, cool. Is their anything else that we missed? I think one of the, one of the important things is that because you have sort of like this lean operation, I would say, not very many LSPs and vendors and different supply chains involved. How does it, how does the interaction between the translators and dev team work? Since there are your pretty much your colleagues, especially for the main languages, do you, do interact just, I don’t know, like through through Zoom or through the ticket if they have any questions?

Alex Timin 

I mean, how are developers and translators? That correct?

Andrej Zito 

Yeah. Because the typical, typically the translators might run into issues. You know, like, I don’t understand what this means. Even if you provide a description, maybe they’re not sure about that. How do you handle the interaction between them?

Alex Timin 

Every translator can ask the questions, can ask the localization manager for, for a context if they don’t understand something. Sometimes translators ask middle position managers to split lexeme at text, because they can, because it’s just impossible to translate correctly into their own language correctly, both for men and for women. So they asked to provide two separate texts. Our localization managers can reach developers. And developers can reach organization managers. For example, localization managers, can ask developers to pass users gender, because we needed to choose the correct text for that particular user. So localization managers and developers can interact within our communication tools such as Slack, for example. And other translators can communicate with the localization managers, but not with the developers.

Andrej Zito 

Okay. Is there something else that you would want to highlight from the whole process? Because I feel like, I don’t know if it’s because I already did my research on this topic snd I’m also not completely an IT noob, but I feel like like, we didn’t go super, super techie like, like, I wouldn’t be like, what is he talking about? Is there something I don’t know? Like, what is like the one thing that you’re like, super proud of that you helped create? Like from all the tools?

Alex Timin 

The superstore is our translation memory tool. We use it for all the languages, it helps us to keep style consistent, and tone of voice. Because it’s very easy to check similar texts and how they were translated and to use translation. It also speeds up the whole translation process.

Andrej Zito 

Right, Do you have this, do you have the TM integrated within the web platform where the translators do the translation? Or is it separate?

Alex Timin 

Yes, no no, it’s integrated. Every time translator translates something, we show a small TM icon on top of the text area, which says that there are similar translations, please check them or don’t do the work you can avoid. And talking about technical things, I can also tell you about how we check the way our developers use translations. So every time a developer asks our system to provide translations, so they use the text ID and all for translations. And they also provide values for substitution. For example, a text can can have a variable, a numeric variable: amount of users, amount of likes, or just the name of another person and we have to check that the users, the values, which are passed for substitution, that they are correct. And at least we could check the tags that we don’t try to substitute last thing. Well, you don’t try to substitute the string placeholder with integer value.

Andrej Zito 

Kind of, what your, so when we are talking about the transition memory of your own, were you there from the start when you started working on this internal transition memory tool or no?

Alex Timin 

I implemented it. on my own. We, we had we had another implementation before. It was based on my sequel, but it was claimed to be not so good. And I just did a small investigation and understood that we could utilize Elastic Search. And to you know, what’s Elastic Search?

Andrej Zito 

I, I was I was just gonna say that we’re getting into the territory where it’s, it’s tricky, which is good. I heard about Elastic Search before, but I do not know. So it would be a long shot for me. So please explain what is Elastic Search.

Alex Timin 

Elastic Search provides you with the possibility to search for an enormous amount of text.

Andrej Zito 

Right. Does it does it still have to be structured data? Or is it also unstructured?

Alex Timin 

It’s just unstructured text. And you can set up your own indices on those texts. For example, you can create index, which will be which will consist of bigrams. You know, what is bigram, bigrams?

Andrej Zito 

No.

Alex Timin 

 You split, you split every phrase into pieces of two words, three words. And this increases…

Andrej Zito 

The speed of a search?

Alex Timin 

Not only the speed of the search, but the quality of suggestions.

Andrej Zito 

Quality of suggestions, you mean like like, for example, when I use search in Google and I have the auto suggestions? Or something else?

Alex Timin 

Look, for example, you have to translate a phrase, which consists of three words, and you try to find a similar phrase, and you use by a single word. So you split your initial phrase, into three, independent words, and, and try to find similar texts. So you’ll find a lot of texts. But their result will be greater. If you split your text into couples, for example. This will help you define the on with those matches, which have this couple of words in them. And the order will be the same. So that’s how it helps to improve the quality of predictions.

Andrej Zito 

So when we’re talking about the TM, I would assume that you probably did some research on the commercial TMs. So one of the things that you normally associate with TM is the TM matches, like if it’s 100% match, or like the 50% match. Do you also in tech integrate something like this, let’s say the translator would get as a suggestion, the higher quality match versus the lower one, or do you have some sort of sorting?

Alex Timin 

Yes, the Elastic Search provides a score, which we use for sorting. But we can’t show the score to our translators, because it’s very hard to interpret it. And we just keep going, we just decided to calculate our own score. And it’s just amount of amount of different letters in the stream. So we have a stream of 100 letters. 14 letters are different. So we just divide 13 by 110. That’s our score. And it works.

Andrej Zito 

Do you store any metadata about the translation pairs, like the source and the target? Like do you start the description or I don’t know some context around it.

Alex Timin 

You mean in the Elastic Search? Because in our translation system, we still store everything. We don’t delete anything. And in the Elastic Search, we start on the the index we use to search for similar translations. So we start off there, the initial text and the identifier of that text in our system. And after that, we can find any translation in our system for that text data.

Andrej Zito 

Since you, since you’re so tech-forwardy, what about machine translation? Have you evaluated machine translation or does it not apply for for dating apps?

Alex Timin 

I don’t think they can be applied for dating apps because machine, in my opinion, machine translation is great for user generated content, for example, you want to use to translate comments on your site. It’s okay to use machine translation here. For example, for Aliexpress. Everything is translated as machine translation on AliExpress. It’s not a good translation, but it can be understood by anyone. And we can, our company want to provide the best translations.

Andrej Zito 

Right. Do you have any idea about the size of the strings or the words that are within the app?

Alex Timin 

The amount of text in our applications? We have 150,000 texts in our database. But but I think you mentioned that you don’t delete it. So does it mean that these are also let’s say, all strings that are not part of the, let’s say, the most up to date app? Or is this really what’s currently in the actual version? Some of them are inactive, but most of them are actually quite a lot.

Andrej Zito 

And by text, you mean a string or word?

Alex Timin 

Usually, I use the term lexeme. Which means strength. Not strength, it can be either stream, or just the word. Lexeme is a piece of text, which can be split. And we have to translate this piece called, can’t divide it into a slate separate parts. For example, for legal docs, lexeme, is always done. It could be a sentence paragraph, or a whole paragraph. Yes. But for interface lexeme, or for interface text, it could be just one word. For a button, for a button, for example.

Andrej Zito 

Okie dokie. So I think we’ve covered the process, pretty much unless there’s something else that you want to share. If not, then I’ll just grill you personally.

Alex Timin 

I think we have covered everything.

Andrej Zito 

Maybe one thing because I know that when we had our introduction call. And you also said that you guys share a lot about your process for the let’s say, the future generation of Alexeis, and so on. So what is the one thing that you would advise to young software engineers in general? That’s my one question and the second one would be specifically about localization. Because I would say that a lot of the people who are studying to become a software engineer, they don’t think much about localization. So let’s start with the first question, because I don’t want to put you in. Yes. So, so what would what would be like your tip for I don’t know, people who are into coding, developing and they’re just studying. What is the reality?

Alex Timin 

I would suggest them not to overcomplicate things. Just, it’s better to write a straightforward code, which is quite clear for everyone, then to use some language specific features, for example. And it will be just more difficult to understand.

Andrej Zito 

What about localization? What is your experience? Did you consider yourself to be part of localization? Or are you still just like software engineer that those tools which are used for what localization?

Alex Timin 

No, I don’t just create tools for localization. It’s a, it’s a very interesting area. And for example, one part of this area is machine translation, which is very interesting thing. And every software engineer who decides to work in localization should to understand should know that localization, it’s not only about showing different translations to users. So there is a great and difficult logic behind all these stuff.

Andrej Zito 

Okay, so when you were younger you were, were you into coding like senses? What age were you into what you’re doing right now? Are you the guy who was into computers? Like since 11? Were you? Are you actually the person who was like coding at age 11?

Alex Timin 

11. Yeah, really? Yeah, really? It was delphi.

Andrej Zito 

Wow. Oh, shit. That’s crazy. What was the first thing that you were, I don’t know toying with?

Alex Timin 

That’s delphi id, delphi forms. Delph was very popular 20 years ago.

Andrej Zito 

Right. Wow. So did you, what was the thing that you were, I don’t know, thinking of building once you get to be an adult? You want to like create games or those kind of things?

Alex Timin 

Oh, to be honest, I didn’t think about it at all. I was just curious about how everything works. And, and why. First, I started from delphi, then I tried to assembler.

Andrej Zito 

I actually know that. I’m better off. But I hated it. When I, when we had it at the university. He was like, why would I need to learn about assembler when we have, I don’t know, Pascal and C and C sharp and C++. And so yeah.

Alex Timin 

I tried C++ and Pascal, where it was very interesting.

Andrej Zito 

What is your favorite programming language?

Alex Timin 

Did you understand, I don’t have once. Now I, I use PHP and Python, and JavaScript. But I also like to say you, C++ and C, but I don’t have tasks which I could solve using these languages.

Andrej Zito 

So are you saying that there are specific programming languages that can solve certain tasks and the other languages cannot? Could you, could you perhaps create, I don’t know, Bumble for guys in C++? Or?

Alex Timin 

It’s possible, even can create Bumble using assembler. But it will take ages. Yes. Some languages have libraries designed specifically for your, for your tasks. And that’s why you should use languages and not because you like them.

Andrej Zito 

Right. That’s why the main, that’s why Python is used for NLP stuff, right?

Alex Timin 

Yes, yes. Yes. Yeah. A lot of libraries, a lot of libraries created for machine learning. Yes.

Andrej Zito 

So do you guys have any within, within the company is there like a preferred programming language that you have to use or for every project you can pick whatever you think suits the task the best?

Alex Timin 

The preferred language is PHP. But of course, you can choose the language you want for your particular task. But that doesn’t mean that one guy will be using scholar, his neighbor will be using, I don’t know delphi or C sharp, for example. So now we use on a par with PHP, kotlin language and go…

Andrej Zito 

Sorry, what was the second one?

Alex Timin 

Kotlin.

Andrej Zito 

Kotlin?

Alex Timin 

Kotlin.

Andrej Zito 

I never heard of it. Is that something new?

Alex Timin 

Ah, it’s new. It’s based on java.

Andrej Zito 

So tell me what is, what is kotlin good for, what kind of tasks?

Alex Timin 

For Android? Okay, okay. It can be used for Android. It’s based on Java. That’s why it can be used for Android, or any other things where Java can be used for web. Back end, for example. So you can use the same language to write server side code, and client side code.

Andrej Zito 

Okay, I’ll start grilling you about software engineering. So let me let me ask you in general, what, what is it that you are curious about right now? Are you curious about how to change diapers?

Alex Timin 

I’m not curious about it now.

Andrej Zito 

You already solved it. Right? You have your programming language for that?

Alex Timin 

Yeah. I’m a professional in that area. I curious about machine learning, and investments, stocks and all these kind of things.

Andrej Zito 

So is that more like thinking about the future for your family? Or is it to make more money? Or both? Or just being smart about money?

Alex Timin 

It’s about future stability, and being smart about money is also okay from it. So it’s interesting.

Andrej Zito 

Where are you in that in that area? Like, are you a beginner who’s learning about investing? Are you picking your own stocks? Or are you investing just in some mutual funds or ETFs?

Alex Timin 

ETFs and individual, individual stocks. I don’t buy and sell every day. I just tried to find a good company to buy a little bit of it. Buy and hold, buy and hold.

Andrej Zito 

So what, what is something that people seem to misunderstand about you? And what this means is that, I don’t know, I meet you for the first time. I joined Bumble team, and I’m like, this guy’s so and so. And then I don’t know, we have a beer half a year later. And I’m like, I was totally wrong about you. Well, you’re not like that. Do you feel like you give a first impression in a certain way? That’s, it’s that is actually not like who you are?

Alex Timin 

I wouldn’t say so. What I will say is that I don’t like when people think that if you are a computer guy, you are willing, you are willing to fix… Okay fix my computer, please.

Andrej Zito 

Right. Have you tried turning it off and on again?

Alex Timin 

Yes, yeah. Yeah. That’s the question I usually ask them.

Andrej Zito 

What do you think is wrong with our industry? And by this, I mean, the localization?

Alex Timin 

In the localization industry, I think it’s a perfect industry and almost nothing wrong with it. Except that, in my opinion, some companies don’t understand that localization can be a big part in the success of a product. So if you want your product to be used around the world, to you have to localize it, and you have to invest into localization. And I think that’s the only way by thinking about localization.

Andrej Zito 

Do you see any companies for example, in Russia, that are international and they come to Russian market, but they screw up their localization?

Alex Timin 

You mean screw localization into Russian language? Yeah, yeah. Yeah, I know, some companies. Some of them are very famous be named. Shall not be made. Yes.

Andrej Zito 

Okay. So here is the tricky question that people usually don’t know how to answer. So I’ll, you can you can pick one that you maybe are able to answer. Number one is things you changed your mind about. So what this means is that as you get older, you’re like, Uh huh. I thought differently my whole life but it’s actually not like that. The second is absurd or stupid things that, that you do that people wouldn’t consider to be normal.

Alex Timin 

I changed my mind about mistakes. Now, making mistakes is okay for me. I tried to do everything perfectly, but now I don’t. I just do things that that work. And that’s okay.

Andrej Zito 

Is this something that changed, maybe because of the culture at the Bumble or what has been behind the change?

Alex Timin 

Maybe if you are a programmer, you can always fix something. And nothing extremely wrong won’t happen. So everything can be fixed. And that’s the main idea. Regarding stupid things I do. Some time ago, instead of relaxing in a proper way. I was scrolling newsfeeds. Facebook and YouTube. But when I noticed this behavior, I just blocked the sites. Well, it is better to relax, working, working outdoors.

Andrej Zito 

Are you using some app to block it during a certain time, or did you bought it for like, you can never go to Facebook.

Alex Timin 

ETC hosts. You just have to remember the file file system. It’s slash u to see slash hosts. Its host name. And that’s all.

Andrej Zito 

Wait. That’s it. That’s it? Is it using common line?

Alex Timin 

You can use common lines to access this firewall.

Andrej Zito 

What is it slash etc?

Alex Timin 

Slash etc slash hosts.

Andrej Zito 

Host?

Alex Timin 

You can use them to amend it or nano. You just provide the correct hostname incorrect IP. Right. Then, it becomes impossible to access this file. This site’s interesting. So now we don’t know what’s going on around. And every time you try to access a newsfeed of Facebook, for example, you just face this blockers thing.

Andrej Zito 

So is it just for the newsfeed or is it the complete Facebook? Can you access the other features? Complete complete Facebook? Yes. So who’s posting the pictures of the baby? See your wife? That’s what Facebook is for now. Yes. Okay, Alex, final words. One thing you could change or tell everyone in the industry? What would it be?

Alex Timin 

I know some people in our industry still use Google Sheets for translations. They center around it, and they write scripts, to export translations and to import translations to synchronize their local database with a Google Sheet. And I think it’s not a good solution. It’s error prone. Right. So stop using Google sheets for this.

Andrej Zito 

Start using Microsoft Excel. This podcast is brought to you by Microsoft. No, I think we I think we get the idea. Right. Alex, thank you very much for the interview today. I hope you had a not so bad time. Okay. So thank you, and I’ll see you some other time hopefully. Bye bye!

Alex Timin 

Thank you. Bye.

We’re always creating new localization content — make sure you don’t miss anything. Be the first to get our upcoming newsletter by joining the mailing list now. 

If you enjoyed that, you’ll love these…

Why hello there!

Enjoy 10% off

on your first course when you join our mailing list.

* All information collected will be used in accordance with our privacy policy. You may unsubscribe at any time.