Белорусский Android-разработчик Анатолий Варивончик второй год работает в лондонском офисе сети для знакомств Badoo и в своём блоге рассказывает о релокейте в Лондон. dev.by поговорил с белорусом о том, как он из любопытства пошёл на хайринг-ивент, чтобы узнать, как устроен процесс собеседования, и ушёл с оффером.
Расскажи о себе. Почему программирование?
Я учился в минской 41-й школе, она достаточно известна тем, что часто берёт дипломы на республиканских олимпиадах по математике и информатике, и там преподают преподаватели с ФПМИ БГУ. Я пробовал соревноваться в математике, но у меня не особо получалось, доходил только до городской олимпиады. Однажды увидел олимпиадные задачи по информатике и решил, что они очень лёгкие. С того момента я увлёкся информатикой и поступил на ФПМИ БГУ без ЦТ, по диплому с республиканской олимпиады. Основной плюс обучения был в хороших знакомствах. Когда видишь примеры людей, которые, например, устроились в Google, то начинаешь верить, что это несложно.
С чего началась твоя карьера в ИТ?
На 3-м курсе я нашёл свою первую работу, но тогда я ещё не знал, чего действительно хочу. Просто разослал скриптом резюме во все компании, что были на dev.by, и парочка компаний откликнулась.
На одном из собеседований толком ничего не спросили, но сразу предложили работу. И я, ещё не зная, чего ожидать, согласился. В итоге занимался базами данных: Oracle, PL/SQL. Позже понял, что мне это не нравится и уволился. Путём проб и ошибок пришёл к тому, что мне интересно работать с Android и устроился в компанию MoneyMan, которая разработала приложения для выдачи онлайн-займов в России, Казахстане, Польше и др. Получил опыт реальной разработки клиентских приложений.
А как ты оказался преподавателем в БГУ?
Не успел закрыть вопросы с распределением, поэтому работал в MoneyMan и на полставки в БГУ — это и было моё распределение. Преподавал студентам 1-го курса С++. На самом деле, преподавание — это классный опыт. В качестве дополнительных заданий мне нравилось давать студентам задачи, которые не связаны напрямую с учебной программой, чтобы закрыть долги по лабораторным или повысить оценку за практику. Это были интересные прикладные кейсы, а не просто абстракции. Например, за дополнительные баллы можно было написать алгоритм, который в шашках с помощью треугольника Петрова ловит последнюю дамку, или сделать программу для игры в танчики. Но, к сожалению, зарплаты в университете не сопоставимы с количеством сил и энергии, которые ты тратишь.
Если бы университетская зарплата была идентична отраслевой, продолжил бы преподавать?
Думаю, да.
Как появилось предложение о работе в Badoo?
Целенаправленно я не искал работу. Я собеседовал разработчиков в MoneyMan, и многие кандидаты «отваливались» на этапе технического интервью. Я не мог понять, в чём дело: может, у нас собеседование неправильно построено или мы слишком сложные вопросы задаём. В общем, я решил узнать, как этот процесс происходит в других компаниях, сходил на интервью в Apalon и Humans, обе сделали мне офферы. А потом абсолютно случайно наткнулся на анонс хайринг-ивента Badoo. Кликнул на ссылку, прошёл тест, и меня пригласили на встречу с представителями компании в Москве. Кстати, даже на этом этапе я сомневался, ехать или нет. Думал, если предложат на поезде добираться, откажусь — жалко времени. Но компания компенсировала перелёт.
Как проходило собеседование? Что нового, полезного для себя отметил?
Собеседование было действительно очень грамотно построено. Процесс налажен так, что ни один интервьюер не сидел без дела, к ним постоянно кто-нибудь подходил из очереди кандидатов. В первый день было человек 30, во второй около 20. Компания предоставила обед прямо там, чтобы лишний раз не отвлекались.
Всего было три этапа. В первом — стандартные вопросы по Java (что такое equals и hashcode, контракты equals hashcode, методы базового класса Object). Во втором — решали задачи и расписывали решения на доске или на листе бумаги. И третий этап, на мой взгляд, самый интересный — дизайн-интервью. Как оно проходит? Ты стоишь возле большой доски, и тебе приходят требования, например, нужно «запилить» какую-то штуку, и ты рассказываешь, как бы ты это реализовал. Потом прилетает следующее требование, и ты говоришь, как будешь встраивать его в текущую архитектуру. Абсолютно без кодинга, буквально на пальцах всё объясняешь. Идея в том, чтобы понять, не случится ли такого, что, когда в реальной разработке тебе прилетит задача, а ты не сможешь встроить её в существующую архитектуру.
Оффер пришёл буквально через час после того, как закончилось собеседование. Собственно, в этом суть хайринг-ивента — сразу после завершения интервью ты можешь узнать ответ. Очень быстро и удобно.
Почему ты принял оффер, который не собирался получать?
Меня зацепило то, что это другой город — Лондон. Мне нравилось в Беларуси, я не собирался никуда уезжать, но релокейт — это совершенно новый для меня экспириенс. Плюс там общение на английском, это позитивный фактор. Изначальный план был таков — год поработать, а потом подумать. Но год прошёл и пока домой не тянет.
Сколько времени занял релокейт Минск-Лондон?
Здесь оказалось всё не так просто. Если бы я сразу полетел в Лондон, и мне бы там не понравилось, то увольнение пришлось бы компенсировать приличной суммой. Поэтому я выбрал вариант поближе — московский офис Badoo, чтобы понять, что компания представляет собой изнутри, всё ли меня будет устраивать.
И как, в «транзитном» московском офисе всё устроило?
Московский офис клёвый, но небольшой — около 100 человек, лондонский раза в четыре больше. Есть игровые зоны, компания приглашает мастеров спорта по настольному теннису, есть места для отдыха, массажа, трёхразовое питание. Каждую пятницу под вечер привозят пиццу, сидр и пиво.
Из-за разницы часовых поясов рабочий день в московском офисе начинается чуть позже, в 11-12 часов. Во время митингов очень удобно общаться с лондонским офисом — в митинг-румах висят большие телевизоры, на которых ты можешь видеть всех, кто пришёл на митинг. Рабочие процессы выстроены хорошо: когда сделал фичу, показываешь её дизайнерам, чтобы они сказали, так ли она выглядит, как было задумано, также есть Continuous Integration, Unit-тестирование, UI-тесты и пр. — всё вместе это даёт высокое качество.
Когда понял, что готов к релокейту?
Сначала обсудил со своей на тот момент ещё девушкой, готова ли она переехать в Лондон. Дальше гуглил и разбирался, что представляет собой этот город, примерно оценивал, сколько у меня будет уходить на аренду и прочие расходы, и только после этого принял решение.
Компания помогла?
Я параллельно работал и собирал документы на визу. В Badoo есть человек, который помогает тебе во всём, что связано с переездом, поэтому особых трудностей не было. Мне скинули список того, что нужно сделать, какие медицинские обследования пройти и пр., и на выходе я получил визу. Также помогли с подготовкой к IELTS. В целом весь процесс подготовки занял у меня почти два месяца.
На месте возникали сложности?
Когда приезжаешь в UK, тебе выдают специальную карточку-разрешение на пребывание в стране. Это нужно для того, чтобы зарегистрироваться в полиции, банке и пр. Я получил её сразу, а вот некоторые ребята ждали несколько недель, и им было не очень комфортно.
Неожиданно сложно оказалось открыть счёт в банке. В Беларуси просто приходишь и открываешь, а здесь, оказывается, нужно было заранее забронировать время прихода в банк. Мне повезло, человек, который должен был в этот день открывать счёт, не пришёл, и меня приняли вместо него. Удивило, что банковские работники сидят в Internet Explorer, их система жутко лагает, и в итоге оформление заняло около часа.
Как тебя приняла новая страна?
У меня были опасения, что мы едем в страну туманов и дождей, но всё оказалось совсем не так. Может, так оно и было лет 20-30 назад, но сейчас здесь солнечных дней, по моим ощущениям, больше, чем в Беларуси. Мы прилетели в марте, когда в Минске было ещё прохладно, а здесь тепло и солнечно. И это стало ещё одним приятным бонусом.
Сразу включился в работу?
Я прилетел в пятницу и в понедельник вышел на работу. Но знаю, что есть ребята, которые выходили на работу через неделю-две. Никто не требует садиться и кодить сразу после приезда.
Расскажи о своей команде. Чем вы занимаетесь?
В отделе Android-разработки около 30 человек. Внешне приложение для знакомств кажется простым, но «под капотом» там очень много всего. Мы часто проводим A/B тестирование идей и фич, чтобы не тратить время на разработку ненужного пользователям функционала. Идея в том, что мы сперва реализовываем небольшую часть функционала, и, если видим, что её хорошо восприняли, тогда инвестируем в неё больше ресурсов. Поэтому даже у двух людей, сидящих рядом, не факт, что будет одинаковый функционал.
Интервью с новыми разработчиками больше не проводишь?
Нет, не сильно хочется этим заниматься. Но я менторю новичков, рассказываю им про процессы, что и как в коде организовано. И в целом слежу за компонентом регистрации, плюс мониторю крэши.
Как налажен процесс коммуникации в команде, как часто выпускаете релизы, с какими технологиями работаете?
Раз в неделю «синкаемся» всей командой разработчиков, а-ля «что произошло за неделю». Релизы выпускаем раз в неделю. Если не успеваешь, значит, не успеваешь, ничего страшного не случится. Все нормально к этому относятся, но не настолько, чтобы нам нечего было делать. Технологии используем стандартные: Kotlin, RX Java, MVICore — это наша собственная библиотека, которая есть на GitHub.
Много легаси-кода?
Он есть, всё-таки Android-версия сети знакомств появилась не вчера. Но этот код постепенно уменьшается. Если берёшь таску, которая связана со старым кодом, по мере реализации функционала параллельно переписываешь существующий. Старый код написан на Java, новый — на Kotlin.
Приведи пример нескольких недавно реализованных фич.
Из последнего — мне очень нравится, как мы реализовали регистрацию. Мы написали отдельный протокол, который позволяет менеджерам тестировать и выбирать, в каком порядке расставлять экранчики в регистрации, какие поля показывать, а какие нет. Эта фича позволила понять, какая комбинация факторов даст максимально комфортную регистрацию пользователю. Также недавно мы запилили новый функционал, который предоставила Google, чтобы приложение могло читать SMS, относящиеся только к твоему приложению. Подробнее тут. Казалось бы, простая фича, но недавно я решил посмотреть, как устроен процесс регистрации в других приложениях, для примера взял Uber и не нашёл там этой фичи. Неудобно было руками вводить — уже привык к автоматической валидации.
А какие фичи для знакомства есть в приложении? Можно ли сделать Like each other — как в Tinder?
Есть фича people nearby — можно познакомиться с теми, кто находится рядом, или с кем пересекался в какой-то локации. Не секрет, что девушкам пишут чаще, чем парням, поэтому, когда у них накапливается достаточно много сообщений, они могут включить опцию мессенджер mini-games и общаться там последовательно, отвечая или игнорируя того или иного человека. Функция match у нас тоже есть: если девочка и мальчик Like each other, то выскочит совмещение, и они смогут продолжить общение.
Какой алгоритм находит людям партнёров? Это не рандом?
Это суперсложные алгоритмы, целая команда занимается тем, чтобы показывать тебе кандидатов, которые скорее всего тебе понравятся, в зависимости от твоей локации, указанных характеристик и пр.
Можно ли взломать сайт знакомств и настроить ранжирование партнёров, которые тебе подходят? Здесь девушка рассказывает, как она это сделала.
Теоретически это возможно. Любое Android-приложение можно взломать, потому что оно работает на телефоне, и вы можете вытащить его исходники. Но фактически для некоторых приложений это будет стоить такого количества усилий, что проще вообще не тратить на это время. Если бы я решил взломать приложение для знакомств, то выбрал бы не Badoo, а что-нибудь другое, наше приложение хорошо защищено.
Получаешь моральное удовлетворение от работы в проекте, который знакомит людей?
Для разработчика, как мне кажется, нет особой разницы, работать над обычной социальной сетью, вроде ВКонтакте, или над сайтом знакомств — те же проблемы, те же технологии. Да, приятно, когда количество пользователей растёт. У проекта есть миссия — помогать строить судьбы людей, и это здорово. В каком-то смысле мы приносим пользу: люди ведь общаются не только онлайн, часто общение переходит в оффлайн.
Как бы ты описал культурный код в компании?
Я бы сказал, что у нас мультикультурность, есть люди из европейских стран, Турции, Индии. Каждый человек приносит в компанию свои привычки, мировосприятие. В целом, Badoo достаточно семейная компания — люди часто релоцируют с семьями. Корпоративы обычно крутые: последний раз, например, был в замке, добирались туда на кораблях по Темзе.
Следишь за рынком труда в Великобритании?
Я особо не слежу за этим, но рекрутёры постоянно пишут, поэтому немного представляю, какой рынок труда в UK. Основное отличие от Беларуси в том, что работодатели предлагают зарплату без учёта налога. Поэтому тебе нужно самому зайти в калькулятор и посчитать, сколько в итоге останется после налоговых взысканий, а они здесь составляют большую часть того, что ты получаешь. Часто предлагают зарплату + премию (от 20 до 50 процентов от оклада). Контракты обычно заключаются на год. При переезде всегда нужно уточнять, предоставляет ли компания визу — не все это делают.
К другим компаниям не присматриваешься?
В Facebook ходил в гости — через дорогу от нас. Но насовсем туда уходить не собираюсь, меня здесь всё устраивает. Лететь в Америку точно не хочу, далеко. В Лондоне есть свои плюсы, например, здесь очень много лоукостов. Я за 30 долларов в Амстердам слетал. Также удобная система с отпусками: если у тебя прописано 24 дня, то это будних, без учёта выходных. Если на время отпуска выпадают праздники, то они тоже не учитываются.
Как вы сняли квартиру?
При переезде Badoo предоставила релокационный пакет, который можно было потратить на билеты, проживание, депозит на квартиру и пр. На первое время жильём нас обеспечили, но потом пришлось искать постоянную квартиру и сталкиваться со всеми бюрократическими процессами Лондона. Обычно жильё ищут через агентства, и они здесь в отличие от минских полезные.
Процесс съёма жилья здесь такой: если тебе квартира нравится, ты делаешь предложение, в котором расписываешь всё по пунктам, например, хочу убрать часть мебели, снизить цену и пр. Важно всё, что не нравится, указать в самом начале, иначе потом уже с этим ничего не сделаешь. Один из моих коллег подписал контракт, а потом заметил, что ему не нравится какой-то столик, он связался с агентством, а ему говорят: «Нам не важно, что вы с ним будете делать, главное, чтобы при выселении он был в квартире».
Если твоё предложение приняли, то проверяют историю твоих прошлых аренд, процесс длится 1-2 дня. Дополнительно ты должен оплатить депозит — на случай, если повредишь что-то в квартире или возникнут разногласия. Цены на квартиры средние. Чем дальше от центра, тем дешевле. Мы с женой снимаем во 2-й зоне двухкомнатную за 1386 фунтов (это без учёта муниципального сбора и коммуналки). Качество — приемлемое. Даже я бы сказал лучше, чем в Минске. Тебе не сдадут квартиру в плохом состоянии. Правда, однажды к нам мышь забежала. Как? Непонятно. Наверное, через бойлерную. Но потом мы уехали в отпуск, а по возвращении её уже не было. Плюс здорово, что в контракте ты защищён от прихода арендодателя. Он должен предупредить тебя о своём появлении за 24 часа. К нам ни разу не приходил.
Как добираешься до работы?
В Лондоне хорошо развита транспортная система, особенно метро. Но цены на него значительно выше, чем в Беларуси. Зато есть скидки для определённых слоёв населения. У меня суммарно выходит 80 фунтов за месяц (это со скидкой в 33 процента) или около 3 долларов за одну поездку. Чем дальше едешь, тем дороже выходит.
Большой город не утомляет?
Я боялся, что будут одни высотки вокруг, но нет, здесь много красивых парков. Рядом с нашим домом есть парк с фермой, где держат овец, свиней, попугаев. Попугаи там едят яблоки, белки очень наглые, еду хватают прямо с рук. Могут залезть на тебя по ноге и украсть что-нибудь. В некоторых парках павлины есть. Кроме этого, я хожу на батуты, мне они нравились ещё в Минске. Вокруг Лондона — много маленьких городов и хорошо развита система поездов.
Кстати, а как ты познакомился с женой?
Увидел на улице, подошёл, познакомился.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.