Hello everyone! My name is Roman and in this blog post, I’d like to tell you a story about how me and my wife relocated from Moscow to Berlin. It took about 4 months to solve all the bureaucracy issues and find a job, but this post is not a detailed instruction on how to relocate and find a job but just a narration about the experience and feelings I had during this period of time.
First and foremost, let me introduce myself. For most of my life, I had been living in Russia in Moscow, and over the last about 15 years I’ve been working as a programmer. I have had a lot of different jobs, but the most interesting step in my career before relocating was the previous six years I’d been working in Yandex.
Yandex is a large Russian IT company, which was started in the mid-90s as a local search engine and in that time it could have been considered as the “Google of Russia”. Russia is one of a short list of countries where the local search engine is more popular than Google. These days Yandex’s business is much wider than just internet searching. The company built a taxi service and acquired Uber in Russia; Yandex is famous for its self-driving cars; it created its own open-source column-based database called Clickhouse, ML library Catboost and dozens of other less famous but high-quality products. Nowadays, Yandex can be considered not only as the “Google of Russia”, but also as the “Uber of Russia”, the “Amazon of Russia”, “Whatever you can imagine” of Russia and most of these services are more popular in Russia rather than their international counterparts.
Me and my wife Olya had been dreaming for a long time about relocating from Russia to a few specific European countries, but we both wanted to get a job. I, with my experience, was sure that I would be able to find a job and we wanted Olya to find one first.
In Russia, Olya had been working for a Russian representative of a German company when in the summer of 2020 that company decided to close its Russian office and Olya was invited to continue working in the Berlin office.
From the time Olya was invited to relocate, it took 6 months to file all the required documents and on the 5th of March 2021, amidst the strictest anti-covid19 limitations, we flew to Berlin, moved into a furnished flat, that we rented for the first three months, and quarantined for two weeks.
While I was in Russia I had heard a lot of opinions that here in Europe all services, including food delivery, are much worse than in Russia. In Russia, they are really awesome, also through the efforts of Yandex, but I was pleasantly surprised that the opinions I had heard were not correct. In the district where we were living we had at least three grocery-delivery services, the same number of catered food delivery services and of course we had Amazon, where you can order anything you want. In other words, two weeks of quarantining didn’t give us any headaches. We “went for a walk” on the balcony and all the necessary things were ordered on the internet.
Relocating to another country is a very interesting experience from a sentimental perspective. Despite the fact that we were relocating to a civilised country, I couldn’t get rid of the light sense of fear and curiosity about the events awaiting us tomorrow. But this exact sense of the unexploredness of the world and its rules adds colours to life and makes such moments in our lives outstanding on the back of years filled with routine. The process of relocating and looking for a job reminded me of the emotions and feelings I had during the time I was studying at university whilst revising for and taking exams. It looks like you have everything you need: all materials, time, etc, you just need to prepare and everything will be fine. But in spite of the preparations, every exam filled me with that sense of fear and curiosity. Studying at university was one of the brightest and most interesting times of my life and it’s probably the reason why relocating aroused such similar emotions and filled me with the same pleasant feelings.
For the first few months, whilst still in Moscow, we rented an apartment in Berlin by using a service called wunderflats.de. This is a service for short-term rentals of furnished apartments. From my perspective, this service is the only simple and useful solution for people who want to register in Berlin but who don’t have a residence permit. The apartment we rented was quite good: cosy layout, convenient location (5 minutes away from Alexanderplatz), and a peaceful courtyard. I need to emphasise that the building where we rented the apartment is an old soviet style multi-storey building built in the nineteen sixties. The one huge disadvantage of this apartment was a neighbour, who either was giving trumpet lessons in his apartment or practised by himself. Every day from Monday to Saturday from 10 am to 8 pm, 3–6 hours a day that ******* trumpetist blew on his trumpet, and every Saturday he invited his co-trumpetists to blow each others’ trumpets and performed a graduation concert. Unfortunately, we couldn’t do anything about it.
The biggest disadvantage of the wunderflats.de is that the tenants can’t publish their reviews related to the apartments they rented. Obviously, it’s intentional: almost nobody would rent an apartment with such negative reviews. On the internet, there are a lot of criticisms about wunderflats.de similar to mine. Actually, renting an apartment there is a lottery, maybe fortune will smile on you and you’ll be able to rent an apartment without such secrets, maybe not. But, as I mentioned earlier, for those who want to register in Berlin and don’t have a residence permit, this service is the simplest way to rent an apartment.
We flew to Berlin on Friday the 5th of March 2021, the 8th of March in Berlin (but not in the whole of Germany!) is a public holiday. In 2021 it was a Monday. So, on Tuesday Olya started (frankly, continued) to work and I began my preparation for the interviews, but I’ll get back to that later.
After two weeks of quarantining, we were able to leave the apartment and start exploring the city. We have been to Berlin multiple times as tourists and by ’exploring the city’ I mean not visiting Brandenburger Tor and Berliner Dom but something different. We were planning to rent an apartment with a long-term contract and before doing this we wanted to develop our own opinion about the districts that Berlin has and the people who live there. For the first few months every weekend, we looked through housing ads, chose attractive options and walked around the area, where those apartments are located.
There are many districts in Berlin, they are different and some of them instil fear in you. For example in Kreuzberg ‘schwarze Deutsche’ people openly sell weed. This looks exactly as it’s shown in ‘The Wire’. My American colleague, when I shared with him my insight, excitedly confirmed that this place looks precisely like Germano’s Baltimore :) One more example is in the area around the U-Bahn station “Paracelsus-Bad”. We were surprised by two things: prices for apartments here are from 10% to 20% cheaper than in other districts, and new houses there are surrounded by barbed wire. Later we found out that the surrounding area is populated with aggressive homeless people and the local government can’t do anything about them. But these two examples are exceptions and all other districts of Berlin that we explored are decent enough.
In Berlin, compared to Moscow, prices for apartments are not really dependent on the proximity to the city centre. Berlin doesn’t even have such an explicit downtown as Moscow does. If we consider everything inside the S-Bahn ring as “downtown” then prices for apartments inside the ring might be from 10% to 20% higher than outside. In Moscow prices in the downtown area can be 2–3 times higher than near the outskirts. It’s a reason why in Moscow we could afford only to have an apartment close to the city’s border and in Berlin decided to rent an apartment closer to the city centre.
While we were looking for an apartment we considered about 10 possibilities and some of them were very nice. We submitted our applications for such apartments with the required documents, but we didn’t fit into one highly important criteria. The point is at that time I didn’t have a job in Germany, only Olya had one. Local landlords have a rule: the price for the apartment should not be higher than one third (sometimes one quarter) of your household’s monthly income. Olya’s salary wasn’t big enough to satisfy this rule for the apartments we were happy to live in. In order to get around this restriction, we began to put in the package of documents the certificated proof of my salary in English, which I had requested a few days before I quit my job at Yandex. Technically, I didn’t claim that I was still working for Yandex, I just showed the salary I actually had at the beginning of March 2021. I’m not sure if it is related to this document or not, but the first landlord, who got our application for the apartment with this document, accepted it. Now I’m working in Germany and have a salary higher than in that document from Yandex and the landlord has nothing to worry about :)
Generally, we were lucky that amidst the covid-related limitations the demand for housing decreased and competition between potential tenants was lower. This fact probably made the process of looking for a new apartment much easier. It took two and a half months to find it and from the 20th of May 2021, everything was ready for moving into the new apartment. The old apartment was paid for until the 5th of June and we had a couple of weeks to buy everything we needed and to move our luggage.
The new apartment was equipped with a fridge, oven, dishwasher, and fully-equipped bathroom. As for the washing machine, bed, wardrobe, furniture for the living/working spaces, etc, we bought ourselves.
Me and Olya both speak English, but we don’t speak German yet, and because of this we had a couple of amusing situations. I was waiting for a washing machine delivery, by the schedule it should have been delivered at 10 am to the new apartment, but we were still sleeping at night in the old apartment since the new one did not have a bed yet. I could get from the old apartment to the new one in 10 minutes by bike. At about 9 am I was getting ready to leave the house when the phone rang. I picked up the phone:
—“Bla-bla-bla” - something in German the caller said to me, but I understand that it’s the washing machine being delivered an hour ahead of schedule.
—“I don’t speak German, do you speak English?” - I ask in German with the only phrase I know. A short pause follows and then:
—“Ja, Ja Russisch!”
—“Ein moment” - and hands the phone to a person who speaks Russian :)
By the way, 20% of people living in Berlin are foreigners, it’s the reason why there is nothing surprising about this story.
We didn’t have any issues with the equipment and furniture and on the 5th of June 2021, we handed over the keys for the old apartment to the landlady and moved into the new one.
Here I can finish the part of my story related to the relocation. We also had to get a tax id and residence permit, open a bank account and sign contracts for mobile, internet and electricity. But all of these things are pretty simple and you can find in great detail how to do it all over the internet.
Olya’s company hired an agency to help us with registering our address and getting a tax id. We have only one amusing story related to this company:
In Russia, Germans are considered to be punctual and attentive to details. Probably not all of them :) To register our place of residence we had an appointment at the appropriate government office and were strictly forbidden from being late. Me and Olya arrived on time and the lady from the agency was 15 minutes late, but, however, she was able to arrange everything and we registered without any problems. Later, we went to take our biometrics for the residence permit and the agent didn’t come at all. She called Olya and told us that she could not find a parking place and asked us to proceed with this procedure ourselves because there was nothing too complicated in it :) It was really not difficult, they took our fingerprints, asked about our eye colour, and height (without taking any measurements), and told us to wait for the documents by mail.
We were not sure whether the documents would have had enough time to be delivered to our old address or not, so we paid for the redirecting mail service. (Yes, I’m talking about a paper mail redirection!) This is a very useful service and all you have to do to use it is just to fill out an online form and pay for the service.
Preparation for the job interview
As I’ve already mentioned, before relocating I’d been working for almost 6 years in Yandex. That job gave me priceless practical experience, incomparable with any experience I got in my previous working places. From the inside, I learnt from which components complex IT systems consist of and how to build them. I was involved in designing such systems and was solving their reliability and performance issues. I was surrounded by people who were much smarter than me and I always could learn something new from them. In such an environment any gaps in your knowledge are revealed in a very short amount of time and despite joining Yandex as an experienced developer plus all the experience I earned during my time there I still understood that I have such gaps, including some related to computer science. And I had to fill those gaps before starting looking for a new job since I had been striving to work for a company as prestigious as Amazon, which is one of those companies that is known for its love of theoretical problems in interviews.
I gave myself three months to prepare for the interview. This preparation consisted of three main parts: solving problems on leetcode.com (to prepare for the theoretical interview); reading books (with the same goal) and preparing for the behavioural interview. In Trello, I built a detailed plan split into short steps. Psychologically it’s important to see your own progress. It’s the reason why I built the plan in a way in which I could tick off one of the sub-aims as completed at least every few days.
I studied every working day from 9 am to 6 pm, and the first two and a half months focused on the theoretical part. During the preparation, I read several books, and the best source of information for me was the book ‘Guide to Competitive Programming’ written by Antti Laaksonen. This book is the essence of fundamental theoretical knowledge, which is necessary for each application developer. It contains only dry useful information without irrelevant information and hardcore mathematics. It is important to mention that despite my many years of experience in programming (I consider it incorrect to measure experience in years, it is more correct to measure it by the number of solved problems and their complexity), I didn’t have a theoretical background related to computer science, because I got my higher education in the other (also technical) areas. Therefore, most likely, for those who took a course on data structures and algorithms at university this book will not seem like a goldmine of theory, as it seemed to me, but nevertheless, it can be used as an excellent reference book on basic algorithms.
Another helpful component of my preparation was creating a premium account on leetcode.com. This site is a large collection of theoretical programming problems with the ability to solve and run them online. One of the advantages of a premium account is access to the collections of problems that are used in interviews by certain companies. I don’t know how precise these collections are, probably not highly precise, because in my later experience in interviews I didn’t get any problems similar to those I had got on leetcode.com. But the important feature of these collections is that the list of problem categories becomes clear. Having this list of categories, it is possible to focus on strengthening your knowledge in those areas in which you find solving problems more difficult than others.
So I learnt from scratch how to solve dynamic programming problems, one of the problems of this type I had got in my interview. (By the way, the chapter about dynamic programming in Antti Laaksonen’s book is pretty weak). To improve my understanding of DP problems I took a great free course on YouTube from freeCodeCamp.org, I highly recommend it.
Firstly, I had been solving problems in my favourite IDE (integrated development environment), but later I decided to do it in leetcode.com’s editor. Of course, it provides much poorer abilities than modern IDEs, but it trains you to write code under conditions similar to those of an interview. Before the covid-19 pandemic, Amazon-like companies in their on-site interviews asked interviewees to write code on a piece of paper or on a whiteboard. Amidst the pandemic, interviews were forced online and now interviewees have to solve problems in an online editor which is no more advanced than a simple notepad. There are a lot of arguments related to this fact on the internet. A lot of programmers think that there is no sense in solving problems on a piece of paper, whiteboard or notepad since in the real world one can use an IDE that provides such features as code autocomplete, mistake highlighting, smart navigation etc. Such limitations put programmers in an unrealistic environment and don’t allow them to perform at their best. I won’t discuss the pros and cons of such interviews and just express my attitude toward this practice. These limitations can be considered as rules of the game. An interviewee should accept these rules if they want to get a job in one company or another. I probably wouldn’t play such a game with some unknown smaller companies, but there is no reason to reject this game if we are talking about Amazon or another large company with a good reputation and benefits.
Besides algorithms, I also had been studying materials related to functional programming. The last two years in Yandex for me were related to the programming language Scala, which combines elements of object-oriented and functional languages. We mostly used Scala as an object-oriented language but knowledge of functional features of the language is in more demand now in Scala-related vacancies. I think this attention to Scala was my mistake; I knew that in Amazon and other top companies this language is not in demand, but if I hadn’t been able to pass an interview with such a company I would have planned to try myself in smaller companies where Scala is required. Actually, I had been preparing for two independent types of interviews, this took my time and energy and, as I realised later, turned out to be unnecessary. Now, if I had to walk along this path once again I would prefer to purposefully prepare for the requirements of a specific company. And only in the case of failure, I would switch to preparing for an interview with another company with other requirements.
I have already drawn a parallel between moving to another country and studying at university. Preparation for interviews is another such parallel - actually, it is a preparation for such an exam where you only have a general overview of what awaits you, and you don’t have a known and comprehensive list of questions.
Last but not least, the final step in my preparation was for the behavioural interview. This type of interview might look simple and not as important as the coding sections, but actually it is; due to underperforming in the behavioural interview, even with a brilliant theoretical one, you could be rejected for the job. Amazon has an excellent website amazon.jobs, that contains detailed information about what awaits a candidate in the interview and what is expected from them, how to structure answers for the questions and which kinds of questions to expect. These materials had been taken as a foundation for my behavioural interview preparation.
In a nutshell, a behavioural interview consists of two phases. In the first phase, a candidate will be asked questions like “Have you ever failed a project and if yes, how did you behave in that situation?” or “Have you ever broken a production and how did you solve that issue?” and many other similar questions about something that went wrong and how you got through it. In the second phase, in the context of Amazon, obviously, one will be checked how they fit Amazon’s leadership principles. These principles are 14 slogans like “Earn trust”, “Deliver results” etc. One can be asked how they understand any one of the principles and provide an example from their own career that illustrates fitting to this principle. It’s important to have several stories prepared in advance and not try to recall them on the fly.
Preparing for this interview I recalled about a dozen stories from my experience and mapped each of them to a few of Amazon’s principles. Finally, I created almost 40 pages of text! I was extremely proud of myself because that’s how much experience I have and how many interesting things I have to tell.
Then me and Olya started to have 2–3 test interview sessions a day: we sat in different rooms, connected to each other on Skype, Olya played the role of the recruiter and I answered her questions. It turned out that my 40 pages of text were too-too much; my answers to questions didn’t fit into any reasonable time limits. For 15–20 minutes I could talk about minor and probably not clear details of tasks I had done; or could, in my infatuation, have drifted too far away from the original question.
I spent about two weeks structuring my 40 pages of text to modify my stories in a way that each of them consisted of a summary that could be told in 2–3 minutes and several details with answers to probable questions. Each of such details also could be told in 1–2 minutes. I ended up with a short overview of my entire experience and could talk briefly (as well as extensively!) about the most interesting stages of my career.
Actually, I found preparation for the behavioural interview to be a very useful mental exercise, even outside of the context of preparation for the interview. Such structuring of your own experience allows you to order your achievements and take a sober look at your past.
Like almost any modern programmer I had a lot of experience working with different kinds of databases. To use them efficiently it’s highly important to understand how they work from the inside. While I had been getting to know how databases work from the users’ point of view I realised that this topic is very interesting to me and I wanted to dive deeper into it. To do it, in the scope of my preparation work I had taken the awesome free course ‘Intro to Database Systems’ made by Andy Pavlo at the Carnegie Mellon University and started to read (but, shame on me, still haven’t completed) a fundamental book ‘Database System Concepts’ by Abraham Silberschatz.
I was happy to know that in Berlin there are at least two representatives of large companies developing databases. Amazon is developing its cloud-based distributed graph database Neptune here while Snowflake is developing its eponymous relational distributed analytical database.
Initially, I hadn’t wanted to apply immediately for positions in companies where I wanted to work. Instead, I planned to ‘practice’ on smaller companies. For example, I wasn’t completely self-confident with my English level and such a ‘probe’ interview could give me confidence (or perhaps not). But finally, I decided against this idea, because I considered it unfair in relation to such companies. And I didn’t want to waste any more time on this, I was rushing into battle!
The end of my preparations fell at the end of spring 2021. I refreshed my CV on Linkedin and on the 20th of May, I had applied for the first vacancy - at Amazon. I didn’t know how long it would take to receive a response to my submission and decided not to send two CVs to two companies simultaneously to avoid overlapping interviews.
I received a response on Wednesday the 26th of May and I was invited for an online-assessment on the HackerRank platform (a platform similar to leetcode.com). The test consisted of 2 algorithmic problems and 2 short essays with an explanation of the proposed solutions. There were 105 minutes available for all these tasks. It was necessary to pass an assessment a week from the moment the response was sent.
Before taking an assessment one has the possibility of taking a mock assessment that has the same structure as a real one. On Sunday the 30th of May I took a mock assessment and I did it imperfectly. For each solution, a system ran from a couple of dozen to almost one hundred tests. I solved both problems, but for both of them, my solutions passed only 60–70% of the tests. They failed either by reaching the time limit or by reaching the memory limit on a large data set.
For the real assessment, I decided to take it at 8 a.m. on Monday the 31st of May. I had chosen the morning time because I wanted to have a clear mind and I didn’t want to walk around half the day and get nervous before taking the test. But in the mornings I need to warm up my mind before I reach my peak of mental activity, it’s highly important for such a crucial task. Therefore, before the test, to warm up my mind, I solved a couple of easy problems on leetcode.com. I found such a warm-up very efficient and repeated this practice before all my next interviews.
This time my solution for the first problem passed all the tests and my solution for the second one passed only 60–70% and again it failed by reaching the memory limit on a large data set. Initially, I implemented a naive quadratic algorithm and then I found a way to reimplement it in a linear way, but I didn’t have enough time to create an implementation of a new algorithm. I would rate both of the tasks as a medium from leetcode.com but both of them required knowledge of the basic algorithms. For example, the first problem tested knowledge of the ‘prefix sums array’ algorithm. I knew about it (kudos to ‘Guide to Competitive Programming’), it’s a reason why my solution easily passed all the tests. A naive solution to that problem also would have worked for a quadratic time and surely failed on a large data set.
After the algorithmic section, there was a psychological test. It wasn’t limited in time and neither was it a challenge to pass, although not without a catch. Almost all questions had the following form: there are two statements provided and you need to evaluate them from 1 to 5 where 1 means you agreed with the first statement and not agreed with the second, 5 - vice versa, 3 - you partially agreed with both of them. The problem was that often the statements were not contradictory and there wasn’t an obvious right or wrong answer. In addition, the statements were sometimes repeated in slightly different formulations. But against the problem-solving tasks, it was a fairly simple exercise where I just honestly chose the answers without trying to guess what answer was expected of me.
Despite the imperfections of my solution, after a few days, on the 3rd of June, I received an invitation to have an online interview with humans (as opposed to the AI I had previously been dealing with). We scheduled the interview for the 14th of June.
The interview was conducted by a woman from India and it was quite difficult for me to understand her English, the problem was in my listening skills :( She told me a few words about herself, the team and how the interview would go down. Then we talked a little about me and my experience and moved on to solving the problem. In theory, there could have been two problems, but I only had time to solve one. The problem was related to dynamic programming. At first glance, I recognized that it should be solved recursively by caching the results of recursive calls, but I completely forgot that recursive calls can lead to infinite cycles. When this nuance had been pointed out to me, I quickly made corrections that fixed this mistake.
In this interview, I wrote the code in a web editor without the ability to compile it and to my shame I wrote it in such a way that it probably wouldn’t have compiled :( Nevertheless, on June 23rd I received an invitation to the final interview. It had to be 6 interviews in one day. It had been prearranged for July 12th.
Now in my narration, I need to jump back a couple of weeks. Almost after taking the online assessment for Amazon, on the 2nd of June, I had sent my CV to Snowflake. On the 8th of June, I received a message from the recruiter and on the 9th we had already had a conversation. I think this interview was some kind of preliminary filter, that I successfully passed and on the 15th of June I was assigned an interview with the engineering manager to whose team I was going to be interviewed.
I have to underline that in Amazon, for such a large company, all processes are working very fast, for each step of the interview process I had certain time frames when I should receive a response and they were always met. After each interview, it had taken no more than 3 days to get a response from Amazon with the information if I had passed the interview or not. Even though the next interview was usually scheduled on the date almost two weeks after the current one, it wasn’t a big problem, the main thing is that I didn’t have to wait too long for the results.
However, even compared to such fast decision-making in Amazon, Snowflake went off at supersonic speed. In their case I hadn’t even had an online assessment when a first interview with a human was scheduled on the 17th of June. But then the weather intervened. In mid-June 2021, Berlin suffered from a heatwave, temperatures raised up to 36 degrees! I drank about five litres of water a day and filled the entire refrigerator with kilos of ice, but all this didn’t save me from the heat and stuffiness, and most Berlin apartments, including ours, don’t have air-conditioning.
I could not perform at 100% in such heat, especially with the anxiety of the interview. So the interview was rescheduled for the 23rd and 24th of June, by that time the temperature had dropped to a bearable 25 degrees. It was two one-hour coding interviews with two different guys. On Monday, June 28th, I was told that I had made it to the next stage and was immediately scheduled for 4 interviews: two for coding, both on Wednesday of the current week; one for technical expertise, on Thursday; and a behavioural one on Friday. On Friday at 9 p.m., Berlin time, a recruiter called me and told me that they were ready to make me a job offer.
Prior to submitting my CV, I decided for myself that Snowflake is a more interesting project (this is a separate big topic, I do not want to focus on it here), so I did not hesitate to accept the offer. About a week later I received an official job offer, but before sending it, the company asked me for the contacts of people who could recommend me. Thanks to colleagues from Yandex: Ilya, Nikita and Svyat (listed in alphabetical order in case you are reading) for the positive feedback :) After receiving the official offer, I wrote to Amazon and asked them to cancel the rest of the interviews.
So, it took me exactly one month from sending in my CV to getting the job offer in Snowflake. That’s not even supersonic, but faster than the speed of light! And from the moment we moved to Berlin to the moment I got the offer it took less than 4 months. That means my plan for preparing for interviews and job searches worked as perfectly as I could ever have imagined.
About a month later I was sitting in a ‘biergarten’ in Berlin with my new team, drinking beer, chatting about anything and everything not related to work, and I suddenly realised that a couple of years before I couldn’t even have imagined that I would feel so comfortable and confident not only in a new unfamiliar company but also in a company full of people who do not speak Russian. I felt like a university entrant who passed the entrance exam with straight A’s to a top university (though I can’t relate to it :)), a feeling of moral satisfaction from the fact that you have successfully completed a big and difficult task, overcame yourself to some extent, forced yourself to go beyond your normal comfort zone, and opened the door to new experiences. I also got the feeling that the hardest and most interesting adventure is still ahead of me. Now I could bravely stand in front of the mirror, look myself in the eye, and say, “Well done, Roma, have a cookie”.
I would also rate the Snowflake interview tasks as a medium on leetcode.com: walk through the tree in width and depth, rotate the linked list, juggle bits; design an LRU cache, a task scheduler; scale code first from one thread to the whole machine, and then to a cluster of machines, etc. This time the interviews took place in an editor that allowed me to compile and run the code, so all my code worked :)
During the interview with Snowflake, there were several amusing moments. Several people came to Snowflake from the Berlin office of Yandex, in one interview there was this exchange:
— “Oh, you’re from Yandex too, you probably know Alice and Bob, they worked at Yandex too.”
— “Buddy, how do you imagine Yandex? There are more than ten thousand people working there!” - I think to myself, but aloud I say, - “I know Bob, because I had an interview with him, but not Alice.”
In another interview, I talk to an American colleague-to-be who had worked at IBM, Amazon, and other big IT companies, so in short, the man seems knowledgeable about the industry:
— “Oh, you worked at Yandex, we have several people from there. They’re all very smart and hardworking. Must be a good company, but I’d never heard of it at all before I joined Snowflake.”
In a conversation with the same colleague, I blurted out some phrase, he stopped talking for a second and said:
— “What you said is grammatically incorrect and doesn’t make sense, did you mean this or that?”
In general, the topic of my knowledge of English worried me as much as the preparation for the technical interviews, but, unfortunately, in contrast to the solution of problems in dynamic programming, to pump this skill up it’s not enough to read a couple of books for a few months and play with an online simulator ’leetenglish.com’. On the one hand, I was sure that I would have no problems with the language: I have been studying with a teacher for a long time and had no problems with travelling and online courses on platforms like Coursera and Udemy, where I took at least a dozen courses on technical topics in English. On the other hand, watching videos on Udemy and communicating in real-time on professional topics are not the same thing.
The first six months of work
At Yandex, I had been working as a Senior Software Engineer, but here I decided to move down to a lower level: firstly, database development is a completely new domain for me, and the second reason is described above - the language. Now, at the moment of writing, six months after I joined the team, I realise that I made the right decision. For the first few months it was very difficult and energy-consuming for me to understand my colleagues, if a day had at least two meetings for an hour (it is not often, but it happens), then after the second one I felt so exhausted that I could not do any mental work.
I hoped that in 3 months I would be able to get into a rhythm, get used to the accents, the way my colleagues speak, the idioms they use, and that communication would not consume so much energy, but this did not happen. Yes, it became easier to communicate, but I still realised that I could not always express myself, or understand what was being said to me. After three months, I started English classes with a teacher, this time with a native speaker, and now I feel the progress in my language level, but I still have to work hard before I can feel completely fluent in an English-speaking environment.
I won’t say anything specific about the project and only share my impressions: a big interesting and complex product that is in demand on the market, many development teams, a lot of cool professionals, a blameless culture and the understanding that people around you are always ready to help. A dream job.