Emilia Gulieva
9 962

«На работу оформляюсь с аттестатом о девяти классах»: белорусский разработчик о работе в Wargaming и Juno

Программист Дорофей Пролесковский рассказал о любви к картам, карьере в стартапах, причинах увольнения и отношении к картографии в Беларуси.

Поделиться

В избранное

В избранном

Всё началось со старого советского клона IBM

Начиналось всё как у многих ребят, чьё детство пришлось на 1990-е годы: у меня была приставка и компьютер, и друзья приходили в наш дом поиграть. Но в какой-то момент всё сломалось. Я решил: «Сам сделаю!» — и пошёл в комиссионку недалеко от дома: там как раз появился учебник по информатике для пятого класса. Я был ещё второклашкой.

Этот учебник я прочёл, порадовался, как много всего есть в моем компьютере — и текстовый редактор, и графический. Но починить его так и не смог. Позже кто-то подарил мне ЕС-1840 — старый советский клон IBM PC/XT, на котором были кнопки «рус» и «лат», а ещё 512 Кбайт оперативной памяти — круто. Мне так казалось. Потом я узнал, что у всех вокруг Windows 98, а у меня DOS 3.30. Но зато я читал книгу Фигурнова по MS-DOS, что-то делал — и у меня получалось.

Об увлечении Linux и картами в восьмом классе

Со временем я познакомился с FidoNet — так в моей жизни возникло первое сообщество. Тогда же я узнал об Ubuntu и Linux. И стал частью тусовки линуксоидов: оказалось, что они сидят на forum.linux.by и частенько собираются в разных местах в Минске. Основной костяк составляли студенты. Я же учился в восьмом классе, но это никого не смущало.

Несколько раз такие «линуксовки» собирал и я. Бывало и так, что приходил в парк Янки Купалы и ждал под проливным дождём: подойдёт ли хоть кто-то. Потом видел в конце аллеи ещё одного такого же энтузиаста. И мы шли с ним, прикрывая головы пакетами и бумажками, в ближайшее кафе и писали потом на форуме: «Линуксовка состоялась! Нас было двое».

Фото из личного архива автора

Примерно в это же время я заинтересовался картами. Всё началось с того, что я попытался поставить на компьютер CityInfo. Программа нормально работала на Windows, но «ложилась», если её запускали на Linux. Разработчик CityInfo — человек специфический, не веривший в Linux — специально добавил в программу проверку.

Когда CityInfo отказалась работать на моём компьютере, я решил, что нужно найти замену картам. Пошёл искать. В результате узнал о проекте OpenStreetMap. Он только стартовал, карт почти не было — чистый лист. Мы рисовали их сами. Оказалось, что тусовка линуксоидов пересекается с тусовкой OpenStreetMap: костяк состоял из тех же людей.

Некоторые из этих ребят пришли в сообщество byGIS, лидером которого меня называют сегодня. Чтобы не вариться в собственном соку, мы с коллегой Львом Драгуновым решили пригласить в сообщество и других профессионалов: позвать кого-то из кадастрового агентства, а ещё выпускников геофака. Обычно они сидят в своих застенках и сетуют, что «зарплаты маленькие, податься бы в тестировщики». В то же время много компаний говорят: «Программисты у нас есть, нам географа бы!»

Сейчас нас около 200 человек, время от времени мы собираемся в Space. Многие компании, например OneSoil, нашли у нас сотрудников, решили разные мелкие проблемы.

Аттестат об окончании девяти классов как альтернатива диплому

У меня нет высшего образования: я ушёл из БГУИР после третьего курса, так и не окончив университет. В тот момент у меня умер отец — было совсем не до сессии. К тому же один из преподавателей невзлюбил меня настолько, что не отмечал весь год на парах. А последней каплей стало услышанное от другого преподавателя: «Вы все ничтожества! На работу вас никто не возьмёт».

Я к тому времени уже работал в режиме частичной занятости. Ещё немного посидел на лекции, послушал, встал и ушёл. Документы из БГУИР до сих пор не забрал — даже аттестат об окончании школы лежит там.

У меня на руках есть только аттестат, который дают после девяти классов. С ним обычно на работу и оформляюсь.

Когда я пришёл в Wargaming, в отделе кадров сперва погрустнели. Потом полистали трудовую книжку, насчитали у меня несколько лет стажа и повеселели. С тех пор я знаю, что не обязательно учиться, чтобы стать инженером в Беларуси.

Как Дорофей меняет работу

Работать я начал ещё на первом курсе. Отец сказал: «Тебе пора работать», — и с тех пор у меня никогда не было летних каникул. О том, как я менял места работы, даже есть анекдот:

— Знаете, Дорофей меняет работу.

— В самом деле? И какой ещё компании понадобился OpenStreetMap?

В 2009 году в Беларусь пришёл Navitel и начал уничтожать открытую картографию: представители этой компании запугивали участников сообщества, натравливали на них госнадзор. Позвали на «разговор» и меня. Обещали неприятности, намекали: сотрите OpenStreetMap — и вас, может быть, простят.

Я понимал, что угроза реальная: они уже закрыли почти все проекты, кроме OpenStreetMap — остальные удаляли свои сайты. Но сдаваться не собирался. Я узнал, какие большие компании у них в партнёрах. Пришёл в «СканЭкс», чтобы попросить разрешения использовать данные от kosmosnimki.ru для OpenStreetMap — и получил предложение о работе.

Даже те проекты с моим участием, которые в своё время не были завершены, сегодня частично доступны пользователям: я выложил их код в открытый доступ. Например, карты для аналога Google в азиатской стране, которые мы делали с «Акавiта». Это было главным, чему меня научил легендарный Джон Росмэн во время работы в RovarSoft: делать всё, что возможно, open source.

С этим правилом я и пошёл дальше по жизни. Поэтому часто бывает так: я прихожу в новую компанию и понимаю, что многие здесь уже видели мой код. Мне говорят: «Мы хотим сделать, как здесь, и как здесь». А я смотрю — так это же я делал, и вот это тоже.

«Беларусь — родина всех мобильных приложений на базе OpenStreetMap»

Картографии в нашей стране долгое время не было. За существовавшие на тот момент карты (в основном бумажные) требовали большие деньги. Поэтому в Беларуси появилось сразу несколько любительских проектов, связанных с составлением карт. Мы делали это просто так, потому что это прикольно. Только потом выяснилось, что за это могут ещё и деньги платить.

Как только у нас появились первые смартфоны, многие начали делать «что-то похожее на Google Maps». Поэтому Беларусь — родина всех мобильных приложений на базе OpenStreetMap: Galileo, Maps.Me, OsmAnd и других. В каждом из них мне чего-то не хватало.

Меня иногда спрашивают, почему в Беларуси картографические компании в основном разрабатывают софт. Дело в том, что в нашей стране сложно получить лицензию на составление карт.

По закону, если ты взял бумажку, ручку и просто нарисовал путь от проспекта Независимости до своего дома, — ты уже произвёл картографическую продукцию без лицензии и нарушил копирайт Белгеодезии. Все карты Беларуси принадлежат ей, а у физлиц вообще нет права на получение лицензии.

С другой стороны, частные лица не несут ответственность за свои действия, в законе она не предусмотрена. Поэтому карты OpenStreetMap заполняют энтузиасты.

И при этом карта Беларуси — одна из лучших в СНГ: истребив свободные сообщества, кроме одного, Navitel создал «тепличные условия» для развития нашего сообщества. У нас не было официальных карт и карт Google, долгое время сюда не приходили карты Yandex. Но поскольку всем было «очень надо», мы по чуть-чуть что-то сделали — вплоть до того, что даже Национальное кадастровое агентство сегодня использует OpenStreetMap.

«Yandex выкатил новый инструмент, но он уже был в Maps.Me больше пяти лет назад»

Потом была работа в MapsWithMe — я пришёл к ним в том числе потому, что у меня появился смартфон, и меня не устраивало ни одно из тогдашних приложений с картами. Хотелось улучшить.

Там я занимался стилем карт. Это итеративный процесс: карты нужно постоянно улучшать. Поскольку понятие о том, что такое хорошо и что такое плохо, у всех разное, я пилил их «под себя». К примеру, мне непонятно, с какой стороны можно спуститься в подземный переход — и я его обозначаю. Или я не понимаю, где подъезды в этом здании — и я их выношу. Также я всегда ориентируюсь на объёмные справочники и книги по картографии — а Yandex и Google принятые нормы часто игнорируют.

Часть из того, что я сделал «для себя», потом из Maps.Me выпилили, равняясь на условных лидеров — Yandex и Google. Очень жаль. Сейчас Yandex выкатил новый инструмент — он показывает, где в здании расположены какие подъезды. Но этот инструмент уже был в Maps.Me больше пяти лет назад. Причём мы показывали не только номера подъездов, но даже нумерацию квартир. Нынешняя команда, может, и не знает об этом.

Сегодня я пользуюсь этим приложением, потому что в нём часть меня. Почти всё устраивает, разве что рекламы слишком много. К сожалению, когда Maps.Me купила Mail.Ru Group, от платной версии — без рекламы — отказались.

«Ругались матом, рвали одежду на сотрудниках ОМОН»: из Петербурга в минский изолятор

Уволившись из Maps.Me, я переехал в Санкт-Петербург. Думал, что надолго, но спустя полгода пришлось вернуться по личным обстоятельствам.

По приезду в Беларусь я сразу же загремел в «кутузку». Мы с друзьями решили нарисовать звёздное небо на серой панельке на станции метро «Петровщина» — там как раз было много других несложных граффити. Закупили баллончики с краской, приехали, и только распаковались и приступили к работе, как появился ОМОН.

Нас забрали в отделение и написали, что мы «ругались матом и рвали одежду на сотрудниках ОМОН». За это мне дали пять суток.

Это было самое спокойное время в моей жизни. Я вернулся в Минск с мыслью, что жизнь не удалась, всё плохо. А потом посмотрел на людей в изоляторе, послушал их истории (вроде такой: жена не даёт бывшему мужу видеться с ребёнком, он вышел с плакатом в знак протеста), и понял: у меня всё хорошо.

Выпав на неделю из жизни, я так и не попал на назначенные в разных компаниях собеседования. Но работу нашёл очень быстро — позвали в Wargaming делать глобальную карту.

«Конфликтные регионы пришлось спрятать»: как в Wargaming стёрли с карты Северную Корею

Глобальная карта Wargaming — это fantasy-мир, она не совсем совпадает с реальной: там есть провинции, у каждой из которых от 3 до 6 соседей, границы другие, поскольку всё ограничено требованиями, которые мне приходилось вытаскивать чуть ли не клещами из коллег. Постоянно случались диалоги вроде этого:

— А здесь тебе что не нравится?

— Слишком большая!

— Ну как «слишком большая» — это же Россия, она не может быть маленькой.

В какой-то момент оказалось, что карту нужно сделать такой, чтобы на ней не было конфликтов, чтобы не было видно, например, к какой стране относится Крым, потому что в компании хотят, чтобы играли и россияне, и украинцы. Мы решили дать возможность игрокам в честной борьбе выяснить, как в этом мире будет.

С десяток конфликтных регионов (если не больше) нам пришлось спрятать.

Мы убрали Северную Корею: такие бизнес-требования выдвинул нам южнокорейский офис. Что делать — взяли ластик и стёрли целую страну с карты мира.

Наша карта резалась на кусочки, которые потом соединялись воедино, и иногда не так, как в реальном мире — надо было следить за границами и исправлять алгоритмические «ляпы». Так, к примеру, Брест у меня самовольно присоединился к Польше, а Люксембург вошёл в состав Бельгии.

Серьёзным вызовом стала необходимость перевести 40 тысяч игровых объектов, а также не менее 700 тысяч надписей на 16 языков (причём два из них — китайских). К счастью, я как раз нашёл paper, который написал Дмитрий Богданов, с неделю пытался всё завести, наконец сделал, обучил нейросеть делать перевод — в итоге получилось неплохо. Хотя в моём fantasy-мире по аналогии с Moscow reservoir, то есть московским водохранилищем, и появились Мадридские и прочие водохранилища, а Flag mountain превратился во Флажную гору.

Работа в Juno: «Никто не хотел выпускать эту фичу, а потом её сделал Uber»

Карта была готова, когда люди, с которыми я работал в Wargaming, стали по одному уходить в Juno. Постепенно туда сманили весь скелет нашей команды. В какой-то момент предложили и мне.

Менеджеры Juno рисовали чудесные перспективы, говорили, что скоро логистическая платформа, над которой мы работали, станет всемирной. Прошло какое-то время, и риторика начала меняться. Давайте будем хотя бы вторым номером. Не в мире, но хотя бы в США. Хорошо, хотя бы в Нью-Йорке.

Как это обычно бывает: на старте проекта ты по-быстрому делаешь карты, чтобы было хоть что-то, что потом можно улучшать. Дальше, когда всё уже работает, твоя задача как специалиста — пойти и доказать всем, что местами система не идеальна и нуждается в доработке. Это сложно, потому что главный аргумент менеджеров: «Всё и так работает!» И тебе нужно «представить аналитику, доказать».

Спустя полгода работы в Juno я придумал один инструмент, пришёл к руководству, сказал, что это решит наши проблемы с позиционированием. Да-да, покивали все. А потом началось: «Нет, не нужно — у нас другие приоритеты».

Никто не хотел выпускать это обновление, поскольку ничего похожего до этого никто не делал: это же большая ответственность. А потом её сделал Uber. И все начали говорить: «О, так у нас же это было. Почему не сделали?» Но дальше вопросов дело опять не пошло.

Потом Juno купил Gett, мы съездили в Тель-Авив и между делом представили это решение в беседе с менеджерами Gett. И в итоге в Gett его внедрили, а в Juno — нет. Оно стояло в приоритете на июнь. Но потом мне сказали, что команда загружена на июнь-август. Словом, как обычно: в сентябре, если будет время, сделаем.

«Yandex-карты в приложении Uber сделали в стилистике Google-карт. Удивительно»

Меня нередко просят прокомментировать ситуацию с объединением Yandex и Uber. Я не работал ни там, ни там — могу лишь представить взгляд со стороны. Мне кажется, было бы правильно, если бы Uber просто перестал работать, а пользователей пригласили в Yandex. Тогда у них не было бы ощущения, что «сломали Uber». Ведь в новом приложении всегда всё по-новому.

После того как произошло объединение Juno и Gett, сервис Gett, к примеру, стал писать: «Пожалуйста, воспользуйтесь услугами Juno», а его «можно поставить по этой кнопке». В таком случае, мне кажется, жалоб было бы меньше, и не было нареканий на Uber, были бы только претензии, что Yandex — это неравноценная замена полюбившемуся сервису. Или «равноценная», если бы Yandex взял больше времени и успел всё отполировать.

Главная проблема Yandex: там нет толковых людей, ответственных за коммуникацию.

У водителей удалили приложение — так скажите им, что делать. Напишите пассажирам: «Извините, у нас переходный период. Дайте нам немного времени — вот вам скидка».

Меня во всей этой истории поразило даже не это, а другое — разработчики сделали Yandex-карты в приложении Uber в стилистике Google-карт. Мне это кажется невообразимым: все картографические компании стараются придерживаться своей стилистики. Компания Mapbox наезжала на других разработчиков, когда они пытались копировать их фирменный стиль. И тут Yandex копирует стиль Google, а также всё то плохое, что было в Google.

Уход из Juno

Чтобы объяснить, почему я ушёл из Juno, стоит вспомнить последний откровенный разговор с менеджером в Wargaming, когда сообщил ему, что ухожу и рассказал обо всех проблемах на проекте. Он спросил: «Что же ты раньше ко мне не пришёл?» И я решил, что в Juno я не умолчу ни о чём, что тревожит и меня, и команду. Буду ходить. И в какой-то момент это сформировало в глазах руководства мой имидж «всегда чем-то недовольного» сотрудника, которому больше всех надо.

Есть вещи, которые задевают всех, но остальные ребята в команде лишь грустно отшучиваются — никто не готов сказать: да задолбало! И «только Дорофей всё ходит и жалуется». Нам всем было некомфортно работать с Андреем Кириленко: он нередко позволял себе мат в адрес коллег, был несдержан. Я и ещё один сотрудник в какой-то момент буквально взмолились о том, чтобы на Андрея повлияли, — и нас перевели в другой отдел. Остальные молча терпели и ругали за глаза в курилке.

История с высказыванием, которое позволил себе Кириленко в адрес собравшихся у оперного театра, думаю, задела за живое не только меня. Я понимаю, что Juno «не вмешивается в личные дела своих сотрудников», но мне кажется, это не очень хорошая позиция для международной компании.

Человек опорочил её репутацию, а затем представил всё так, словно это журналисты виноваты. Мы ждали, что он принёсет извинения, скажет что-то вроде: «Я всё осознал, нехорошо так писать». Но он лишь написал в общем чатике о том, что ему «жаль, что СМИ набросились на нашу компанию. Не думал, что будет такой бэклэш». И в компании решили: «Каждый имеет право на ошибку». Но если бы она была первой.

Мои слова интерпретировались как нытьё. В последнее время мои разговоры тет-а-тет с директором и менеджерами рассматривались не как попытка сообщить о проблеме, чтобы вместе её решить, а как выпад в духе: «Мне тут не нравится, я увольняюсь!» Раз за разом я уверялся, что эти разговоры ни к чему не ведут.

Когда я пошёл прощаться с ребятами, один из менеджеров другой команды стал кричать: «Он у нас уже не работает, следите, чтобы на кухне ничего не съел». Надеюсь, хоть матерных анекдотов обо мне не рассказывают, как это было с некоторыми уволившимися.

На каникулы в никуда

Я ушёл в никуда. Твит о том, что я закончил работать в Juno, опубликовал в пятницу вечером. И к полуночи получил первый комментарий: «Давай к нам». Были и другие предложения.

Прошлой осенью ребята из некоммерческого проекта PostGIS сказали мне: «Ты пишешь нам о многих ошибках… Давай, ты их будешь чинить». Так что многие вещи, которые омрачали мне жизнь и в «СканЭкс», и в Wargaming, и в Juno, я аккуратно «допилил».

В сентябре они пригласили меня в Бостон — так что посмотрим. Можно считать, что сейчас у меня долгожданные каникулы.

dev.by — сайт об информационных технологиях в Беларуси и в мире.

Статьи по теме:

  • Четыре года в Минске — и четыре месяца в Нью-Йорке. Почему сервис для разработчиков Kuoll переехал и закрылся.
  • Новый глава разработки World of Tanks о взаимодействии сотрудников и об изменениях в работе за последние три года.
  • Инженеры заячьих душ. Белорусы снимают детский сериал, который показывают на Disney, Discovery, Sky Kids.
{ "author_name": "Emilia Gulieva", "author_type": "self", "tags": [], "comments": 73, "likes": 34, "favorites": 15, "is_advertisement": false, "section_name": "default", "id": "42802", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]