Хабр, привет! Еще одно интервью с нашим выпускником – Николай Рекубратский, тимлид команды разработчиков в компании XING. Николай рассказал о жизни в Германии, о ресурсе, на котором он нашел работу, чем европейские специалисты отличаются от российских в подходе к работе, о востребованности профессии data engineer в Европе, о проектах в XING и пр.
— Коля, какой у тебя бэкграунд и как складывался твой карьерный путь в data engineer и тимлида?
— Тимлидом я стал примерно год назад, но до сих пор стараюсь не упускать возможности немножко попрограммировать, когда доходят руки. До этого я долгое время был разработчиком и тем, кого сейчас называют дата инженером.
В своей прошлой конторе я занимался видеорекламой, строил аналитическую систему для наших клиентов. Это был стартап, который постепенно рос, пока не лопнул. Росли объемы бизнеса, и с ними – количество обрабатываемых данных, и в какой-то момент инструменты, которые я использовал и архитектуры, которые у нас применялись, перестали работать. В итоге я притащил новые инструменты, новые архитектуры, тогда была очень модной lambda-архитектура.
Потом был проект по составлению профилей для сотен миллионов пользователей, тоже довольно интересно. И во всех этих проектах мне нравился вызов: есть какие-то требования по отклику, по консистентности данных, еще по чему-то. Чтобы соответствовать этим ожиданиям и требованиям, нужно очень сильно переосмыслить текущую архитектуру. Это был и вызов, и свобода действий одновременно, именно это меня так и привлекало.
— И как же складывался твой карьерный путь?
— Я за свою 11-ти летнюю трудовую жизнь работал не в таком большом количестве компаний, XING – четвертая. А начал я как веб-разработчик, писал много на Ruby во фреймворке Ruby on Rails. Работал в Москве в конторе, которая делала много интересных штук, связанных с видеопотоками: и прямые эфиры, и интерактивное видео. Также эта контора занималась построением разных видеосистем, организовывала трансляцию Олимпиады в Сочи, а потом закрылась. Все компании, в которых я работал, умерли. Это, я надеюсь, никак не связано со мной (смеется – прим. автора).
— XING-то знает о судьбе твоих прошлых компаний?
— У XING дела идут хорошо. Возвращаясь к Undev, мне там нравилась опять же свобода применять все технологии, которые я считал нужными. Я успел поносить разные «шляпы»: был и бэкенд разработчиком, и фронтендом, занимался администрированием серверов, писал на куче разных языков. Это был очень интересный опыт.
Спустя 5 лет я переехал в Санкт-Петербург, перебрался в другую компанию, которая, собственно, занималась видеорекламой. Я пришел туда как Ruby-разработчик, но появлялись все более и более интересные задачи, которые требовали других подходов и других инструментов. У меня на тот момент было много времени, чтобы самому читать статьи, блоги, книги, которые были посвящены тем вещам, с которыми я работал, и которые решали какие-то болевые точки этой работы.
Я приобретал новые навыки, и после обновления своего резюме на LinkedIn, стал получать сообщения от рекрутеров. Они предлагали вакансии, в которых фигурировал термин «дата инженер». Тогда я понял, что область, в которой я работал, обрела свое название, имеет свою специфику, и теперь этих людей называют «дата инженеры».
И вот так я понял, что теперь я дата инженер, немного по-другому можно себя спозиционировать на рынке. Я начал смотреть вакансии и в конце концов оказался в XING. XING – немецкая профессионально-социальная сеть, которая является лидером в немецкоязычном мире, но на других языках она не представлена.
— С таким сильным бэкграундом разработчика почему и в какой момент ты пошел на программу «Специалист по большим данным»?
— Это случилось, когда я работал в компании Virool, она занималась видеорекламой. В тот момент я уже построил аналитическую систему, которая использовала Spark. Был на середине пути по построению data management platform. И у меня накопились вопросы, было сложно понять, как строить архитектуру в тех или иных случаях, чтобы эффективно данные обрабатывать. Много вопросов таких было, и в какой-то момент кто-то из коллег кинул в чат ссылку на эту программу. Я сказал, что мне интересно, меня контора поддержала, оплатили участие. На программе очень важными были для меня занятия про DМP, я нашел там ответы на многие вопросы, которые меня мучили. На программе мы много чего делали руками, нам теорию читали, но все равно самую большую пользу получаешь, когда начинаешь применять знания на своих задачах. И мне так повезло: на работе не было отдельных людей, которые бы занимались машинным обучением, и я смог применить свои новые знания на практике на задаче по предсказанию баннерных кликов. Это был очень интересный проект, он очень долго длился, им я и занимался все оставшееся время: нужно было разрабатывать модели, как-то их улучшать, потом выводить их же в продакшен своими руками. Так как в компании была атмосфера стартапа, сотрудников было не очень много, а работы непочатый край, то я всем этим и занимался.
— Ты сказал, что к тебе много разных компаний стучалось, российских и зарубежных. Почему именно XING? Почему переезд в Германию? Рассматривал ли ты другие страны?
— Начну с конца. Я рассматривал, конечно, другие страны. В прошлой компании была возможность поработать в Сан-Франциско. Мы там пожили с женой несколько месяцев, посмотрели. В итоге решили, что Сан-Франциско нам не очень подходит для семейной жизни. Может, для молодых и смелых – это очень хорошо, а нам показалось, что для нас этот город не очень подходит. А поработать где-то не в России хотелось, чтобы получить другой опыт. Это была моя цель – поработать в международной компании, посмотреть, как дела делаются по-другому. И хотелось, чтобы это было не очень далеко от России.
Мы стали смотреть на Европу, а именно на Англию и Германию, два экономических локомотива. Остальные страны не так широко известны своими IT-компаниями. В Англии меня немного смущали стереотипы про плохую погоду на подсознательном уровне, поэтому больше смотрел в сторону Германии. И тут есть некоторая ирония в том, что я сейчас живу в Гамбурге, а это тот же Петербург в Германии в плане погоды, здесь довольно дождливо. Но так как я до этого последние 4 года жил в Питере, после него любая погода кажется хорошей, куда бы ты ни переехал.
Я смотрел на разные компании в Германии. Сначала я думал, что со своим багажом знаний в рекламе мне будет проще их применить в рекламной компании. Но компаний, где получился бы match с командой и теми задачами, которые у них есть, не находилось. Я не видел интересных для себя контор или меня не устраивали люди и их отношение.
— Как ты искал работу? Где-то размещал резюме помимо обновления профиля на LinkedIn?
— Есть такой сервис HoneyPot — как dating сервис для разработчиков. Ты размещаешь резюме, указываешь свои требования и ожидания, и тебе начинают писать компании. С несколькими компаниями я там общался, но было такое ощущение, что вот-вот напишет компания, которая еще лучше. Вроде вот эта, в который ты уже прошел несколько этапов, ничего, но может быть есть еще что-то лучше.
И в какой-то момент мне написали из XING, причем не на позицию дата инженера, а на позицию Ruby-разработчика. Я еще подумал, что мне это неинтересно, потом почитал про компанию, она была соорганизатором соревнований по рекомендательным системам два года подряд, и я подумал: “ну, ладно, может с ними будет интересно пообщаться”. На первом интервью я рассказал о своем бэкграунде, о том, что я знаю и умею, и они сказали: “мы видим, что у тебя другие ожидания и другой профиль, у нас есть вакансия дата инженера, давай переключимся на нее”. Так я с ними продолжил общение, несколько месяцев длилась вся эта канитель с интервью, много этапов было. Что меня больше всего зацепило, так это последний этап – встреча с командой.
— Как проходила твоя встреча с будущей командой?
— Обычно вы идете в ресторан на обед и там целый час болтаете, едите и в такой непринужденной обстановке ты можешь понять, что за люди, хочешь ли ты с ними работать. И для меня это было тем моментом, когда я решил, что я хочу, мне это интересно. Мы собрались с женой и ребенком и переехали. Компания предоставляет жилье на время, пока ты свое не найдешь, но оно не только для тебя, квартира была на пять комнат, и почти все были заняты. И жизнь с ребенком, который любит просыпаться в 5 часов утра, было испытанием для наших соседей. Но, наверное, это мотивировало их быстрее найти свое жилье. Мы потом тоже нашли свое пристанище.
— Расскажи про проекты, которые вы делаете с командой сейчас.
— У нас есть несколько направлений, они все связаны с пользователями, потому что у нас команда, у которой фокус именно на пользовательские данные – рекомендации и производство контента. Есть другой отдел, который занимается вакансиями, новостями, а у нас фокус именно на пользовательские данные. Но при этом Xing довольно большая контора, и там примерно 60 команд, которые занимаются разными вещами, именно продуктовых команд, они разные частички сайта пилят.
Есть в разделе рекомендации два интересных проекта. Мы сейчас исследуем силу связей между пользователями на основе различных сигналов. Сейчас есть просто информация о наличии связи между пользователями, но у нас нет понимания, насколько она сильная. Есть какие-то гипотезы, которыми занимается сейчас студент, она пишет свой master thesis о силе связей между пользователями на основе топологии сети.
Есть другой проект, который тоже связан с рекомендациями, мы пытаемся понять, почему пользователь зашел на наш сайт именно сейчас, какая у него цель именно сейчас. То есть такой акцент именно на real time данные, то есть посмотреть истории сессий этого пользователя в реальный момент и понять, куда он идет, что ему нужно, почему он хочет добавить этого человека или того, и на основе этого изменить наш алгоритм, чтобы предоставить ему лучшую рекомендацию.
Могу еще сказать про генерацию контента. Недавно появились две новые истории: годовщина работы пользователя в компании и когда в компании, пользователя появляется новый незнакомый коллега. Тут интерес в том, что компанию пользователь указывает в свободной форме, и он может указать все, что угодно, и иногда бывает сложно сопоставить разные названия и понять, что это одна и та же компания – либо опечатка, либо немного по-другому называется подразделение, а мы хотим понимать, что это одна и та же сущность. Если брать компанию в 10 тысяч сотрудников, например, то появление нового человека мы не хотим показывать всем, а хотим сделать более персональную рекомендацию на основе интересов и прочего.
— Расскажи про инструменты data engineering, которые ты используешь чаще всего в работе и почему. Какой твой самый любимый?
— В нашем стеке, с которым приходится работать более-менее регулярно, это Нive, Spark, Kafka, Cassandra, Akka Streams, ElasticSearch. Из любимых – это Akka Streams и Kafka, потому что мне нравится работать со свежими данными, которые обрабатываются в реальном времени, ну, и Kafka не раз в моей карьере меня выручала, за это я ее очень люблю. Из того, что я использую чаще всего как менеджер – это, скорее, общение с людьми, что очень важно, и многие дата инженеры этот инструмент недооценивают.
— Большинство компаний не разделяет data scientist и data engineer, не понимают, что это два разных профиля человека, и пытаются искать себе в команду универсальных специалистов, которые могут сделать все: и данные собрать, обработать, и подготовить модель, и в прод вывести. Как ты думаешь, почему это происходит и оправдывает ли себя такой подход?
— Я думаю, что это нормально, это идет от ресурсов, которыми располагает компания. Маленькому стартапу очень сложно нанять всю линейку необходимых специалистов: QA, backend, frontend, мобильные разработчики, data engineer, data scientists, еще кто-нибудь. Они просто не потянут, в стартапы нанимают разработчиков, которые готовы делать все. Когда компании вырастают, тогда они могут позволить себе иметь специалистов, которые заточены на конкретную область. В больших конторах уже чаще можно увидеть разделение на data engineer и data scientist. В XING есть такое разделение, но при этом у нас ожидается, что data scientist’ы способны писать продакшен-код, за который не стыдно.
— Поскольку ты сейчас на менеджерской позиции, ищешь себе людей в команду, какие hard и soft skills важны при выборе кандидата? И по твоему наблюдению, чего не хватает? Что требует большего развития, если мы говорим про тех людей, с кем ты общался, нанимая себе в команду.
— Насчет хард скиллов: очень сложно найти человека, который соответствует твоему стеку, у больших компаний стек очень специфический. Например, когда меня нанимали, я очень хорошо попал в стек именно этой конторы, потому что у меня были знания Scala, которой пользуются в основном для всех связанных с дата инжинирингом задач. В то же время у меня был Ruby-бэкгрануд, а в XING много продуктовых вещей написано на Ruby. Мой бэкграунд очень хорошо совпал. Но при найме сотрудников я не ожидаю, что у них тоже будет идеальное попадание, в том числе по стеку data engineering.
Отлично, если человек знает фундаментальные вещи, которые сложно выучить: хорошо программировать или разбираться в статистике. Сложно, например, начать писать хорошо на Scala, это требует времени, потому что язык непростой; но просто начать писать на Hive, потому что это SQL, и ты просто садишься и пишешь, а когда кто-то начинает ругаться, что твои запросы кладут сервера, ты начинаешь разбираться, что там происходит. Мы нанимаем тех людей, которые обладают чем-то соответствующим нашему стеку, и у которых есть очень важная для нас черта – способность к обучению. Для моей команды важно, чтобы люди были любопытные, чтобы они, если даже чего-то не знают, могли быстро освоить, разобраться, могли каким-то образом получить это знание. Способность к обучению – один из важных скиллов, на который мы смотрим, когда нанимаем. Другой важный скилл – это способность нормально коммуницировать с людьми, приносить позитив в команду.
— Коля, расскажи про свою команду.
— В XING интересная структура: во многих командах есть по три менеджера — agile project manager, тимлид и продакт менеджер. Два менеджера – тимлид и продакт — постоянно с командой. Продакт придумывает, какие фичи мы можем реализовать, и как улучшить существующие. Тимлид – это я, отвечаю за технологическое решение и развитие людей в команде. Agile project manager смотрит со стороны, как работает команда, и дает советы, что можно улучшить в процессах или пытается какие-то конфликты внешние решить. И кроме этих трех менеджеров есть пять человек разработчиков: один QA инженер, один full stack разработчик и три дата инженера. Еще один человек, которого я не упомянул, студент, пишет кандидатскую.
— Из каких стран члены твоей команды?
— Найти специалистов только в Германии невозможно, у нас очень разнородная компания. Не настолько международная, как, скажем, большинство компаний в Берлине, но все же достаточно международная. У меня есть двое коллег из Украины, парень и девушка из Германии и девушка из Нидерландов. Наш agile project manager из Хорватии. Внутри компании официальный язык – английский, все общаются на нем.
— Следующий вопрос в продолжение предыдущего: отличаются ли, по твоим наблюдениям, европейцы от наших? Ты в России долго работал, сейчас уже есть опыт работы с европейцами.
— У меня есть некоторый опыт работы с европейцами, но он ограничивается одной европейской компанией, поэтому могу говорить только о том, что вижу. Что очень заметно: количество коммуникации среди разработчиков — что мы делаем и зачем. Это подразумевает много синхронизаций и встреч, но зато у всех очень хорошая картина того, что происходит, почему и зачем.
— Эти встречи инициирует ваш продакт?
— Это культура компании, которая идет с самого верха. У нас очень открытое руководство, которое регулярно рассказывает, что происходит, какие новости и очень внимательно слушает фидбек по поводу того, что людям нравится, что не нравится, как поменять. Есть инструменты для того, чтобы давать этот фидбек руководству — анонимно или открыто. Очень хорошо организована культура обратной связи на всех уровнях. И это первая вещь, которая очень сильно отличается от моего предыдущего опыта работы в других компаниях.
Вторая вещь: очень четко соблюдается баланс между работой и личной жизнью. К 6 часам офис пустеет, люди не чувствуют необходимости сидеть вечерами или ночами в попытке встретить дедлайн, нет авралов. В России работа часто выходит за рамки обычного рабочего дня, в Германии люди очень внимательно к этому относятся и не горят желанием задерживаться после 18:00, это все понимают, и на всех уровнях менеджмента поощряют. У них очень много своих традиций: обожают субботним утром посидеть в кафе, заказав бранч. Они просто наслаждаются жизнью, им интересно вне работы.
— Про пустеющий к 6 вечера офис: это связано с тем, что правильно планируется работа, и нет сверх объема по задачам? Или же, условно говоря, завтра дедлайн, есть задачи, которые не сделаны, а человек встает в 6 часов и уходит, потому что у него личная жизнь?
— Дедлайны (из того, что я видел) не настолько жесткие, чтобы завтра обязательно что-то было в продакшене. За счет культуры обратной связи, если что-то не успевается по плану, это становится очевидно не в последний момент, а за несколько недель, и можно скорректировать ожидания.
— Доволен ты жизнью в Германии?
— Да, я очень доволен жизнью в Германии, рад, что я туда переехал, что переехал именно в Гамбург. Я знал про Берлин и провел там неделю до начала активных собеседований в Германии. По Гамбургу research не делал, но он оказался очень хорошим городом, и он мне нравится даже больше, чем Берлин. Сейчас я многие города, в которые приезжаю, сравниваю с Гамбургом, и чаще всего Гамбург выигрывает.
— Куда-то в профессиональном плане хочется двинуться?
— Я пытаюсь понять, насколько я себя комфортно ощущаю в роли менеджера, потому что, с одной стороны, кажется, что на данной позиции ты можешь большее влияние оказать на развитие продукта и таким образом на всю компанию в целом. Но, с другой стороны, оказываешься дальше от непосредственного использования технологий, иногда мне этого не хватает. И пока не удается найти баланс, который меня бы устраивал, чтобы, с одной стороны, у меня хватало времени и на менеджерскую деятельность, и на то, чтобы чем-то прикладным непосредственно позаниматься. Я точно понимаю, что в данный момент не хочу расти выше по иерархии. Потому что дальше какие-то согласования бюджетов, таблички в excel, и это будет самое близкое к обработке данных. Так что туда я пока не стремлюсь.
— Коля, какой у тебя бэкграунд и как складывался твой карьерный путь в data engineer и тимлида?
— Тимлидом я стал примерно год назад, но до сих пор стараюсь не упускать возможности немножко попрограммировать, когда доходят руки. До этого я долгое время был разработчиком и тем, кого сейчас называют дата инженером.
В своей прошлой конторе я занимался видеорекламой, строил аналитическую систему для наших клиентов. Это был стартап, который постепенно рос, пока не лопнул. Росли объемы бизнеса, и с ними – количество обрабатываемых данных, и в какой-то момент инструменты, которые я использовал и архитектуры, которые у нас применялись, перестали работать. В итоге я притащил новые инструменты, новые архитектуры, тогда была очень модной lambda-архитектура.
Потом был проект по составлению профилей для сотен миллионов пользователей, тоже довольно интересно. И во всех этих проектах мне нравился вызов: есть какие-то требования по отклику, по консистентности данных, еще по чему-то. Чтобы соответствовать этим ожиданиям и требованиям, нужно очень сильно переосмыслить текущую архитектуру. Это был и вызов, и свобода действий одновременно, именно это меня так и привлекало.
— И как же складывался твой карьерный путь?
— Я за свою 11-ти летнюю трудовую жизнь работал не в таком большом количестве компаний, XING – четвертая. А начал я как веб-разработчик, писал много на Ruby во фреймворке Ruby on Rails. Работал в Москве в конторе, которая делала много интересных штук, связанных с видеопотоками: и прямые эфиры, и интерактивное видео. Также эта контора занималась построением разных видеосистем, организовывала трансляцию Олимпиады в Сочи, а потом закрылась. Все компании, в которых я работал, умерли. Это, я надеюсь, никак не связано со мной (смеется – прим. автора).
— XING-то знает о судьбе твоих прошлых компаний?
— У XING дела идут хорошо. Возвращаясь к Undev, мне там нравилась опять же свобода применять все технологии, которые я считал нужными. Я успел поносить разные «шляпы»: был и бэкенд разработчиком, и фронтендом, занимался администрированием серверов, писал на куче разных языков. Это был очень интересный опыт.
Спустя 5 лет я переехал в Санкт-Петербург, перебрался в другую компанию, которая, собственно, занималась видеорекламой. Я пришел туда как Ruby-разработчик, но появлялись все более и более интересные задачи, которые требовали других подходов и других инструментов. У меня на тот момент было много времени, чтобы самому читать статьи, блоги, книги, которые были посвящены тем вещам, с которыми я работал, и которые решали какие-то болевые точки этой работы.
Я приобретал новые навыки, и после обновления своего резюме на LinkedIn, стал получать сообщения от рекрутеров. Они предлагали вакансии, в которых фигурировал термин «дата инженер». Тогда я понял, что область, в которой я работал, обрела свое название, имеет свою специфику, и теперь этих людей называют «дата инженеры».
И вот так я понял, что теперь я дата инженер, немного по-другому можно себя спозиционировать на рынке. Я начал смотреть вакансии и в конце концов оказался в XING. XING – немецкая профессионально-социальная сеть, которая является лидером в немецкоязычном мире, но на других языках она не представлена.
— С таким сильным бэкграундом разработчика почему и в какой момент ты пошел на программу «Специалист по большим данным»?
— Это случилось, когда я работал в компании Virool, она занималась видеорекламой. В тот момент я уже построил аналитическую систему, которая использовала Spark. Был на середине пути по построению data management platform. И у меня накопились вопросы, было сложно понять, как строить архитектуру в тех или иных случаях, чтобы эффективно данные обрабатывать. Много вопросов таких было, и в какой-то момент кто-то из коллег кинул в чат ссылку на эту программу. Я сказал, что мне интересно, меня контора поддержала, оплатили участие. На программе очень важными были для меня занятия про DМP, я нашел там ответы на многие вопросы, которые меня мучили. На программе мы много чего делали руками, нам теорию читали, но все равно самую большую пользу получаешь, когда начинаешь применять знания на своих задачах. И мне так повезло: на работе не было отдельных людей, которые бы занимались машинным обучением, и я смог применить свои новые знания на практике на задаче по предсказанию баннерных кликов. Это был очень интересный проект, он очень долго длился, им я и занимался все оставшееся время: нужно было разрабатывать модели, как-то их улучшать, потом выводить их же в продакшен своими руками. Так как в компании была атмосфера стартапа, сотрудников было не очень много, а работы непочатый край, то я всем этим и занимался.
— Ты сказал, что к тебе много разных компаний стучалось, российских и зарубежных. Почему именно XING? Почему переезд в Германию? Рассматривал ли ты другие страны?
— Начну с конца. Я рассматривал, конечно, другие страны. В прошлой компании была возможность поработать в Сан-Франциско. Мы там пожили с женой несколько месяцев, посмотрели. В итоге решили, что Сан-Франциско нам не очень подходит для семейной жизни. Может, для молодых и смелых – это очень хорошо, а нам показалось, что для нас этот город не очень подходит. А поработать где-то не в России хотелось, чтобы получить другой опыт. Это была моя цель – поработать в международной компании, посмотреть, как дела делаются по-другому. И хотелось, чтобы это было не очень далеко от России.
Мы стали смотреть на Европу, а именно на Англию и Германию, два экономических локомотива. Остальные страны не так широко известны своими IT-компаниями. В Англии меня немного смущали стереотипы про плохую погоду на подсознательном уровне, поэтому больше смотрел в сторону Германии. И тут есть некоторая ирония в том, что я сейчас живу в Гамбурге, а это тот же Петербург в Германии в плане погоды, здесь довольно дождливо. Но так как я до этого последние 4 года жил в Питере, после него любая погода кажется хорошей, куда бы ты ни переехал.
Я смотрел на разные компании в Германии. Сначала я думал, что со своим багажом знаний в рекламе мне будет проще их применить в рекламной компании. Но компаний, где получился бы match с командой и теми задачами, которые у них есть, не находилось. Я не видел интересных для себя контор или меня не устраивали люди и их отношение.
— Как ты искал работу? Где-то размещал резюме помимо обновления профиля на LinkedIn?
— Есть такой сервис HoneyPot — как dating сервис для разработчиков. Ты размещаешь резюме, указываешь свои требования и ожидания, и тебе начинают писать компании. С несколькими компаниями я там общался, но было такое ощущение, что вот-вот напишет компания, которая еще лучше. Вроде вот эта, в который ты уже прошел несколько этапов, ничего, но может быть есть еще что-то лучше.
И в какой-то момент мне написали из XING, причем не на позицию дата инженера, а на позицию Ruby-разработчика. Я еще подумал, что мне это неинтересно, потом почитал про компанию, она была соорганизатором соревнований по рекомендательным системам два года подряд, и я подумал: “ну, ладно, может с ними будет интересно пообщаться”. На первом интервью я рассказал о своем бэкграунде, о том, что я знаю и умею, и они сказали: “мы видим, что у тебя другие ожидания и другой профиль, у нас есть вакансия дата инженера, давай переключимся на нее”. Так я с ними продолжил общение, несколько месяцев длилась вся эта канитель с интервью, много этапов было. Что меня больше всего зацепило, так это последний этап – встреча с командой.
— Как проходила твоя встреча с будущей командой?
— Обычно вы идете в ресторан на обед и там целый час болтаете, едите и в такой непринужденной обстановке ты можешь понять, что за люди, хочешь ли ты с ними работать. И для меня это было тем моментом, когда я решил, что я хочу, мне это интересно. Мы собрались с женой и ребенком и переехали. Компания предоставляет жилье на время, пока ты свое не найдешь, но оно не только для тебя, квартира была на пять комнат, и почти все были заняты. И жизнь с ребенком, который любит просыпаться в 5 часов утра, было испытанием для наших соседей. Но, наверное, это мотивировало их быстрее найти свое жилье. Мы потом тоже нашли свое пристанище.
— Расскажи про проекты, которые вы делаете с командой сейчас.
— У нас есть несколько направлений, они все связаны с пользователями, потому что у нас команда, у которой фокус именно на пользовательские данные – рекомендации и производство контента. Есть другой отдел, который занимается вакансиями, новостями, а у нас фокус именно на пользовательские данные. Но при этом Xing довольно большая контора, и там примерно 60 команд, которые занимаются разными вещами, именно продуктовых команд, они разные частички сайта пилят.
Есть в разделе рекомендации два интересных проекта. Мы сейчас исследуем силу связей между пользователями на основе различных сигналов. Сейчас есть просто информация о наличии связи между пользователями, но у нас нет понимания, насколько она сильная. Есть какие-то гипотезы, которыми занимается сейчас студент, она пишет свой master thesis о силе связей между пользователями на основе топологии сети.
Есть другой проект, который тоже связан с рекомендациями, мы пытаемся понять, почему пользователь зашел на наш сайт именно сейчас, какая у него цель именно сейчас. То есть такой акцент именно на real time данные, то есть посмотреть истории сессий этого пользователя в реальный момент и понять, куда он идет, что ему нужно, почему он хочет добавить этого человека или того, и на основе этого изменить наш алгоритм, чтобы предоставить ему лучшую рекомендацию.
Могу еще сказать про генерацию контента. Недавно появились две новые истории: годовщина работы пользователя в компании и когда в компании, пользователя появляется новый незнакомый коллега. Тут интерес в том, что компанию пользователь указывает в свободной форме, и он может указать все, что угодно, и иногда бывает сложно сопоставить разные названия и понять, что это одна и та же компания – либо опечатка, либо немного по-другому называется подразделение, а мы хотим понимать, что это одна и та же сущность. Если брать компанию в 10 тысяч сотрудников, например, то появление нового человека мы не хотим показывать всем, а хотим сделать более персональную рекомендацию на основе интересов и прочего.
— Расскажи про инструменты data engineering, которые ты используешь чаще всего в работе и почему. Какой твой самый любимый?
— В нашем стеке, с которым приходится работать более-менее регулярно, это Нive, Spark, Kafka, Cassandra, Akka Streams, ElasticSearch. Из любимых – это Akka Streams и Kafka, потому что мне нравится работать со свежими данными, которые обрабатываются в реальном времени, ну, и Kafka не раз в моей карьере меня выручала, за это я ее очень люблю. Из того, что я использую чаще всего как менеджер – это, скорее, общение с людьми, что очень важно, и многие дата инженеры этот инструмент недооценивают.
— Большинство компаний не разделяет data scientist и data engineer, не понимают, что это два разных профиля человека, и пытаются искать себе в команду универсальных специалистов, которые могут сделать все: и данные собрать, обработать, и подготовить модель, и в прод вывести. Как ты думаешь, почему это происходит и оправдывает ли себя такой подход?
— Я думаю, что это нормально, это идет от ресурсов, которыми располагает компания. Маленькому стартапу очень сложно нанять всю линейку необходимых специалистов: QA, backend, frontend, мобильные разработчики, data engineer, data scientists, еще кто-нибудь. Они просто не потянут, в стартапы нанимают разработчиков, которые готовы делать все. Когда компании вырастают, тогда они могут позволить себе иметь специалистов, которые заточены на конкретную область. В больших конторах уже чаще можно увидеть разделение на data engineer и data scientist. В XING есть такое разделение, но при этом у нас ожидается, что data scientist’ы способны писать продакшен-код, за который не стыдно.
— Поскольку ты сейчас на менеджерской позиции, ищешь себе людей в команду, какие hard и soft skills важны при выборе кандидата? И по твоему наблюдению, чего не хватает? Что требует большего развития, если мы говорим про тех людей, с кем ты общался, нанимая себе в команду.
— Насчет хард скиллов: очень сложно найти человека, который соответствует твоему стеку, у больших компаний стек очень специфический. Например, когда меня нанимали, я очень хорошо попал в стек именно этой конторы, потому что у меня были знания Scala, которой пользуются в основном для всех связанных с дата инжинирингом задач. В то же время у меня был Ruby-бэкгрануд, а в XING много продуктовых вещей написано на Ruby. Мой бэкграунд очень хорошо совпал. Но при найме сотрудников я не ожидаю, что у них тоже будет идеальное попадание, в том числе по стеку data engineering.
Отлично, если человек знает фундаментальные вещи, которые сложно выучить: хорошо программировать или разбираться в статистике. Сложно, например, начать писать хорошо на Scala, это требует времени, потому что язык непростой; но просто начать писать на Hive, потому что это SQL, и ты просто садишься и пишешь, а когда кто-то начинает ругаться, что твои запросы кладут сервера, ты начинаешь разбираться, что там происходит. Мы нанимаем тех людей, которые обладают чем-то соответствующим нашему стеку, и у которых есть очень важная для нас черта – способность к обучению. Для моей команды важно, чтобы люди были любопытные, чтобы они, если даже чего-то не знают, могли быстро освоить, разобраться, могли каким-то образом получить это знание. Способность к обучению – один из важных скиллов, на который мы смотрим, когда нанимаем. Другой важный скилл – это способность нормально коммуницировать с людьми, приносить позитив в команду.
— Коля, расскажи про свою команду.
— В XING интересная структура: во многих командах есть по три менеджера — agile project manager, тимлид и продакт менеджер. Два менеджера – тимлид и продакт — постоянно с командой. Продакт придумывает, какие фичи мы можем реализовать, и как улучшить существующие. Тимлид – это я, отвечаю за технологическое решение и развитие людей в команде. Agile project manager смотрит со стороны, как работает команда, и дает советы, что можно улучшить в процессах или пытается какие-то конфликты внешние решить. И кроме этих трех менеджеров есть пять человек разработчиков: один QA инженер, один full stack разработчик и три дата инженера. Еще один человек, которого я не упомянул, студент, пишет кандидатскую.
— Из каких стран члены твоей команды?
— Найти специалистов только в Германии невозможно, у нас очень разнородная компания. Не настолько международная, как, скажем, большинство компаний в Берлине, но все же достаточно международная. У меня есть двое коллег из Украины, парень и девушка из Германии и девушка из Нидерландов. Наш agile project manager из Хорватии. Внутри компании официальный язык – английский, все общаются на нем.
— Следующий вопрос в продолжение предыдущего: отличаются ли, по твоим наблюдениям, европейцы от наших? Ты в России долго работал, сейчас уже есть опыт работы с европейцами.
— У меня есть некоторый опыт работы с европейцами, но он ограничивается одной европейской компанией, поэтому могу говорить только о том, что вижу. Что очень заметно: количество коммуникации среди разработчиков — что мы делаем и зачем. Это подразумевает много синхронизаций и встреч, но зато у всех очень хорошая картина того, что происходит, почему и зачем.
— Эти встречи инициирует ваш продакт?
— Это культура компании, которая идет с самого верха. У нас очень открытое руководство, которое регулярно рассказывает, что происходит, какие новости и очень внимательно слушает фидбек по поводу того, что людям нравится, что не нравится, как поменять. Есть инструменты для того, чтобы давать этот фидбек руководству — анонимно или открыто. Очень хорошо организована культура обратной связи на всех уровнях. И это первая вещь, которая очень сильно отличается от моего предыдущего опыта работы в других компаниях.
Вторая вещь: очень четко соблюдается баланс между работой и личной жизнью. К 6 часам офис пустеет, люди не чувствуют необходимости сидеть вечерами или ночами в попытке встретить дедлайн, нет авралов. В России работа часто выходит за рамки обычного рабочего дня, в Германии люди очень внимательно к этому относятся и не горят желанием задерживаться после 18:00, это все понимают, и на всех уровнях менеджмента поощряют. У них очень много своих традиций: обожают субботним утром посидеть в кафе, заказав бранч. Они просто наслаждаются жизнью, им интересно вне работы.
— Про пустеющий к 6 вечера офис: это связано с тем, что правильно планируется работа, и нет сверх объема по задачам? Или же, условно говоря, завтра дедлайн, есть задачи, которые не сделаны, а человек встает в 6 часов и уходит, потому что у него личная жизнь?
— Дедлайны (из того, что я видел) не настолько жесткие, чтобы завтра обязательно что-то было в продакшене. За счет культуры обратной связи, если что-то не успевается по плану, это становится очевидно не в последний момент, а за несколько недель, и можно скорректировать ожидания.
— Доволен ты жизнью в Германии?
— Да, я очень доволен жизнью в Германии, рад, что я туда переехал, что переехал именно в Гамбург. Я знал про Берлин и провел там неделю до начала активных собеседований в Германии. По Гамбургу research не делал, но он оказался очень хорошим городом, и он мне нравится даже больше, чем Берлин. Сейчас я многие города, в которые приезжаю, сравниваю с Гамбургом, и чаще всего Гамбург выигрывает.
— Куда-то в профессиональном плане хочется двинуться?
— Я пытаюсь понять, насколько я себя комфортно ощущаю в роли менеджера, потому что, с одной стороны, кажется, что на данной позиции ты можешь большее влияние оказать на развитие продукта и таким образом на всю компанию в целом. Но, с другой стороны, оказываешься дальше от непосредственного использования технологий, иногда мне этого не хватает. И пока не удается найти баланс, который меня бы устраивал, чтобы, с одной стороны, у меня хватало времени и на менеджерскую деятельность, и на то, чтобы чем-то прикладным непосредственно позаниматься. Я точно понимаю, что в данный момент не хочу расти выше по иерархии. Потому что дальше какие-то согласования бюджетов, таблички в excel, и это будет самое близкое к обработке данных. Так что туда я пока не стремлюсь.