Григорий Бакунов (bobuk) - о переезде в Киев, работе CTO в Parimatch Tech и особенностях украинского ИТ
Мы продолжаем общаться с людьми, которые влияют на украинскую ІТ-индустрию. И сегодня мы в гостях у СТО компании Parimatch Tech — Григория Бакунова. Также он, наверное, более известен как bobuk, как директор по распространению технологий «Яндекса», как ведущий подкаста «Радио-Т» и так далее.
С прошлого лета Гриша живет и работает в Киеве. И мы встретились с ним, чтобы обсудить, как он попал в Parimatch Tech, что интересного заметил на украинском ІТ-рынке, ну и, конечно, поговорили немного о личном.
Интервью получилось длинным. На YouTube-канале сокращенная версия. Для настоящих фанов Бобука есть полная версия в аудио на всех подкастных платформах — iTunes, Google Podcasts, SoundCloud и вот еще RSS. А ниже краткая текстовая выжимка лишь небольшой части разговора.
О продуктовых компаниях
Технологические компании делятся всего на два типа: аутсорсинг и производство собственных продуктов. С моей точки зрения, производство продуктов для «Монобанка» и производство продуктов для Parimatch Tech — это для специалиста одинаково интересная задача. Типичного программиста не очень интересует сторона пользователей, его интересует делать свой крутой технологический продукт.
Нужно идти в продуктовые компании, потому что только там есть возможность напрямую влиять на те технологии и продукты, которые делаешь. При этом большая часть разработчиков в беттинге не участвуют, а большая часть разработчиков «Монобанка» на самом деле не очень активные пользователи банка. Ты предлагаешь специалистам по-настоящему вложиться и выстроить хорошее техническое решение вокруг продукта, но при этом, какой конкретно это продукт, не очень важно. Я знаю суперкрутых чуваков, которые вообще не интересуются взрослым контентом в интернете, но работают в adult-бизнесе.
Когда я сюда пришел, а это было примерно в середине прошлого лета, ребята уже пилили новую платформу. И стало понятно, что она будет когда-то сильно лучше, чем старая. Но ребятам очень хотелось постепенный роллаут, и планировалось, что платформа выйдет в продакшн через два года. Моя сильная сторона заключается в том, что я умею спрашивать — а почему нет? Это людей часто бесит. Так вот, главный вопрос был: а почему бы не начать это делать прямо сейчас? Мол, давайте повезём людей на новую платформу. И, по большому счёту, это то, что отличает по-настоящему продуктовые компании от аутсорса.
Один из главных признаков хорошего программиста — когда он написал код, он уже знает, как его улучшить
Мы можем себе позволить довольно рискованные, резкие вещи, потому что понимаем: наша задача — постоянно прогрессировать. У нас нет задачи тупо зарабатывать деньги на том, что мы уже сделали. Та платформа, которая была в середине лета, и та, что сейчас функционирует, — это совсем разные продукты. Мы переделали половину платформы за эти полгода. И не бездумно это делали, нет. Мы увидели кусок, который не устраивал, когда выкатились, и поняли, что это надо переделывать. Приняли решение коллективно, постоянно созваниваясь друг с другом.
Мы переписали огромный кусок внутреннего сервиса для того, чтобы понять, как правильно двигаться дальше. Много ставили экспериментов. И всё это супердинамичная история. Там есть legacy, но это то legacy, которое мы практически не трогаем, у нас вся платформа сейчас новая.
Ну а какой главный признак технологической компании для меня? То, что в тот момент, когда выезжаем на новую платформу, мы уже знаем, какая будет следующая. Прямо тогда договариваемся друг с другом, как именно будем переделывать платформу, которая сейчас кажется новой, чтобы стать еще лучше.
Мне такие штуки очень нравятся. Тогда понимаю, что нет, мы не остановились. Да, мы сделали из монолита какую-то мультисервисную архитектуру. Классический микросервис. Но при этом, когда ты на это смотришь, думаешь: здесь вот микросервисы сильно завязаны на задержку внутри одного дата-центра. Наверное, это не микросервисы... Знаешь, сейчас есть модное слово «микролит». Когда смотришь на этот микролит, ты понимаешь, что это не он, это какая-то почти монолитная структура, состоящая из микросервисов.
И в этот момент у тебя в руках сервис, который тебе нравился, штука, состоящая из микросервисов, превращается в копролит. В смысле в кусок чёрт знает чего. Потому что ты уже понимаешь, как сделать её лучше.
Один из главных признаков хорошего программиста — когда он написал код, он уже знает, как его улучшить. Пока делал это, уже научился чему-то новому.
Как попал в Parimatch и чем занимается
В компании есть человек, который работает в технологической части Parimatch больше 10 лет. Он на позиции Executive директора и слушал мой подкаст когда-то много лет назад. Он в какой-то момент забежал просто посоветоваться про технологии. Я что-то рассказал, он в ответ: «Слушай, ты не можешь приехать, просто поговорить об этом?» Говорю: «Ну хорошо, давай как-то организуем».
Я прилетел в Киев, мы поговорили. И, что греха таить, меня подкупают люди. Здесь во главе компании стоят очень классные ребята. И вот я пообщался с разными техническими и нетехническими специалистами во главе компании, и у меня остались очень приятные впечатления. Я поехал домой, потом ещё раз приехал, чтобы чем-то помочь. А потом, как это обычно бывает, пришёл генеральный и говорит: «Слушай, нам так с тобой нравится, может, работать с нами будешь?». И всё.
Работа технического директора заключается в трёх китах. Первое — это создать такую структуру из людей, которая позволит компании эффективно существовать. У меня эта задача отдана на откуп человеку, которому я очень доверяю. Есть второй человек, который мне помогает ответить на вопрос, как будет выглядеть наша аппаратная архитектура. Как будет устроено наше «внутреннее облако», как я люблю говорить. И есть третья область — выбор технологий и всего, что с этим связано. К счастью, здесь тоже есть сильный специалист, который за меня это делает.
По большому счёту всё, что делаю я, это помогаю людям меньше ошибаться. То есть не запрещаю им ошибаться, а помогаю меньше это делать. У меня огромный накопленный опыт собственных и чужих ошибок. Это позволяет сказать: «Смотри, здесь может быть плохо и здесь тоже, а вот так, по моему опыту, было бы хорошо». Этот опыт со временем конвертируется в то, чтобы совершать меньше ошибок и выбирать чуть более правильные вещи. Это касается и выбора людей на разных местах, и выбора технологий, и технических решений. Очень классная работа, без сарказма. Единственная у неё проблема — не бывает ни выходных, ни отпусков.
Об этичности работы в гемблинге
Я аморальный тип, нужно к этому привыкнуть. В смысле, что у меня нет ощущения, что за беттингом и гемблингом есть какие-то моральные дилеммы. Это с одной стороны. А с другой — беттинг и гемблинг сейчас и
Мы не пытаемся заставить пользователя поставить всё, у нас есть верхнее ограничение по ставке. Ровно до того, чтобы человек получил удовольствие, но не тратил свои последние деньги. Самое главное в любом таком бизнесе — это увеличивать LTV (lifetime value) с каждого потребителя.
Больше всего подобные компании зарабатывают с людей, которые делают ставку один или два раза в год. Есть категории профессиональных игроков, но больше всего денег у таких пользователей, которые пришли поболеть за любимую футбольную команду и ещё решили ставочку сделать.
Сейчас многие стараются так или иначе помочь лудоманам перестать быть лудоманами. Реально это никому не выгодно. Это не только репутационные риски, но ещё просто по-человечески неприятно. Самый эффективный способ, который мы сейчас думаем применять, — это помочь человеку забанить самого себя. «Нажми кнопку, месяц ты с нами играть не будешь. Ну ничего, через месяц приходи, будем рады. Пока отдохни немножко». Самое интересное, что это эффективная бизнес-стратегия.
Ещё раз, это способ в конечном итоге зарабатывать. И отказаться просто от лудоманов невозможно, потому что как ты определяешь, что это лудоман? Человек, который каждый день проигрывает по 10, 100 гривен, но при этом приходит каждый день, — лудоман?
О профессиональном развитии разработчика
Профессиональным развитием как таковым должен заниматься сам человек, это правильный подход. Но есть и системная история. Помнишь, я говорил про команду ребят, которые на Delphi написали когда-то первую версию платформы? Вот они недавно начали для себя миграцию на другие языки и другие системные платформы. Кто-то из них мигрировал на C#, кто-то — на Python. Всё это помогает делать компания. Но это скорее исключение из правил. Задача каждого разработчика — постоянно вкладываться в собственное развитие. Может ли это сделать компания за тебя?
Дело в том, что заниматься твоим развитием сложно. Мы не знаем, куда ты хочешь расти. Когда ты явно говоришь, что хочешь развиваться в ту сторону, мы поможем. Но это скорее помощь советами, консультациями.
Про джуниоров и перегретый рынок
Тут интересная история. Одним из моих первых неприятных впечатлений от украинского рынка было то, что с джунами все плохо: именно они в большом недостатке. Это проблема рынков, в которых больше всего аутсорса. Например, в Украине, Беларуси.
Смотришь на человека, и у него написано — синьор. Начинаешь с ним разговаривать и понимаешь, что он не синьор. Его в аутсорсинговой компании продавали как синьора, и теперь он тоже себя таким считает. Но человек просто крепкий мидл. Это типичная история.
В аутсорсе же чем выше человек, тем дороже его можно продать. С джунами ровно такая же история: есть джуны, которые на самом деле самые начальные мидлы, и есть джуны, которые не понимают совсем пока ничего. И это грустно. Поэтому у нас есть Parimatch Tech Academy. Это такая движуха по набору студентов и вообще людей, которые так или иначе хотят в ІТ, но пока ещё толком ничего не умеют. Мы берём даже не джунов, а, знаешь, предджунов. И готовим некоторое количество новичков, которые в конце концов в состоянии будут работать в компании.
У «Яндекса», Google, Microsoft и теперь у Parimatch есть школы, которые подготавливают специалистов. Есть стандарт конверсии, что порядка 30% выпускников, возможно, устроятся в компанию. Но всё это работает иначе. Ты начинаешь насыщать рынок этими людьми, выводить на него все больше и больше качественных специалистов. Потом к этому подключаются другие компании, и единственное, что ты получаешь за всё это — право первого просмотра. Просто первым видишь этих людей.
Не будет попытки продать человека подороже, уменьшится количество потогонок, будет больше продуктовых команд
Интересно, что в России и Казахстане этой проблемы нет. Я знаю казахский рынок немножко, там все нормально с джунами. Их обычно набирают со старших курсов вуза, присматривают самых смышленых и пытаются отбирать сразу в компании, а не просто учить и так далее.
Украине предстоит, как мне кажется, большое движение, потому что постепенно зарплаты у нас поднимались. Знаешь, так это было когда-то в Индии, зарплаты выросли настолько, что стало невыгодно держать просто аутсорс, выгодно стало держать продуктовые команды. И это сильно улучшит рынок. Буквально в следующие два года должно произойти.
Не будет попытки продать человека подороже, уменьшится количество потогонок, будет больше продуктовых команд. Мне кажется, это классно. Это то, что нужно сейчас стране для того, чтобы появилась своя разработка, а не вот это просто работать на чужого дядю.
Чем удивил украинский ІТ-рынок
Сейчас будет странно: в Украине, несмотря на то, что огромное количество ребят постоянно работает в аутсорсе и часто с англоязычными компаниями, все неожиданно плохо с английским языком. Причём, знаешь, это худшая разновидность «плохо», в том смысле, что много ребят искренне используют английский язык, зачастую не понимая смыслов, оттенков употребляемых слов. В результате получается очень-очень плохо. У этого есть обратная сторона: количество людей, которые при этом понимают английский, прямо на порядок выше, чем в Беларуси, России, Казахстане, Узбекистане и так далее.
Например, в Беларуси большую часть рынка составляет EPAM. А это такая структура, которая отгораживает разработчика от непосредственного общения на английском. Специалисты могут внутри общаться на том языке, который им комфортный. В Украине многие знают язык хотя бы на базовом уровне, и это классно. Но открываешь, например, документацию, написанную на английском, и понимаешь, что специалисты путают divide и separate. Просто переводят с украинского на английский дословно. И первое время мне приходилось говорить сотрудникам: «Выбирайте язык, на котором понимаете. Если нужно писать документацию на украинском, пишите на украинском. Если не понимаете на английском, пишите на том языке, который понимаете». Я лучше потом приведу другого человека, который перепишет на английский.
Многим компенсируют недостаток зарплаты должностью
Интересное замечание про украинский рынок, и почему-то об этом никто не говорит: зарплаты у разработчиков в Украине выше, чем во всех соседних регионах, включая Польшу.
Мне кажется, что проблема здесь в первую очередь связана с аутсорсом, но сейчас во многом с тем, что разработчики с высокой квалификацией в дефиците. Много высококвалифицированных специалистов просто уехали за последние годы, а востребованность в них всё больше и больше растет в Украине. Как следствие — высокие зарплаты. Это хорошо для рынка. Потом случится небольшой откат, но пока это хорошо.
То, что рынок перегрет, позволяет мне как человеку, который любит сильных ребят, привлекать их из других стран, это важно. Мне кажется, это прикольная история привозить в Украину разработчиков из других стран.
Ещё думаю, что люди в регионах, которые близки к Украине, очень цепляются за название позиций и должностей. Им это важно. И многим компенсируют недостаток зарплаты должностью. Я так никогда не делаю и считаю, что чем выше позиция, тем больше человек должен получать. А по факту часто замечаю, что приходит специалист на высокую должность, но зарплатные ожидания у него низкие. Но большая часть людей совершенно в высокой части адекватной вилки.
Нужно ли CTO писать код
Это нужно для того, чтобы глубже понимать тот продукт, которым ты занимаешься, с технической точки зрения, чтобы лучше понимать, как устроен набор инструментов, которым пользуются разработчики, с которыми работаешь.
И это не от масштаба компании зависит, а от организации работы. Я знаю много ребят на позиции СТО, которые никогда не программировали вообще, и они нормально работают. Но просто там, где я работаю, я предпочитаю организовывать работу иначе — руководить программистом должен человек, который, как минимум, может почитать твой код, понять, что там написано, и сказать, что сделал неправильно.
А иначе просто ломается вся система поощрений и наказаний. К тебе приходит человек и говорит: «Ты плохо поработал». — «Почему?» — «На 5 строк меньше написал».
Возможно, ты каждый раз выдавал человеку задачу, которая действительно так не решается. Сядь с ним, посмотри в код. Если ты действительно оцениваешь, что он мало сделал и нет там такого, над чем можно было долго думать... Бывает такое (изредка), что человек написал 5 строк, но над ними думал неделю. Если не можешь это оценить, как ты вообще можешь управлять в этом месте людьми?
Ты можешь нарабатывать компетенции управления программистами, не очень понимая, как ими управлять? А ты не понимаешь, если сам не программируешь. Это моя позиция. Бывают другие подходы: когда программист до какого-то времени работает, потом превращается в СТО, перестаёт программировать, погружаться, и ему это уже не интересно. И это нормально. Но у меня другая позиция, я считаю, что чем более ты заинтересован в происходящем, тем глубже сам погружаешься в код.
Підписуйтеся на YouTube-канал DOU, щоб не пропускати нові інтерв’ю, live-дискусії та подкасти.