Попасть в международную IT-компанию — мечта многих разработчиков, но путь туда непрост. Senior Software Engineer Spotify Илья Лямкин прошел его, работая в разных сферах — от health tech до ride-hailing. В интервью он рассказал, какие навыки помогают строить карьеру в глобальных компаниях, почему open source — это не только про код, но и про имидж, и как автоматизация помогает бизнесу экономить сотни тысяч долларов ежемесячно.
Илья, для начала расскажите о старте вашей карьеры и ключевых проектах.
Я учился в университете ИТМО по специальности Computer Science and Computing Hardware. Уже во время учебы я начал самостоятельно заниматься программированием, и на третьем курсе стал брать стажировки по специальности. А уже на четвертом — работал практически full time.
Одним из моих первых мест работы была компания, которая помогала другим создавать технические продукты. Это позволило мне потрудиться над множеством разнообразных проектов и изучить большой технологический стек. Многие продукты мы создавали с нуля — это позволяло мне каждый раз применять новые технологии и совершенствоваться.
Там я изучил инструменты, которые впоследствии стали значимыми в индустрии. Например, тогда фронтенд-фреймворк React был довольно нишевым, но я уже работал с ним в некоторых проектах и хорошо его знал. Когда популярность React стала расти, я оказался одним из немногих разработчиков, кто отлично с ним ладил — и моя ценность как специалиста была очень высокой.
Позже у меня было еще несколько значимых проектов. Из них я могу выделить стартап финской компании Meru Health Inc. — приложение, которое помогало людям с депрессией найти терапевтов. Я был одним из первых разработчиков в этой компании, создавал само приложение и платформу для терапевтов, где они могли зарегистрироваться и взять в работу клиентов.
Затем была испанская компания FREE NOW, которая разрабатывала технологию для быстрого заказа такси. На тот момент она была одним из крупнейших игроков в Германии, Испании и в Великобритании — на этих рынках мы конкурировали с Uber. После я присоединился к Spotify в Стокгольме и работал на разных проектах: от безопасности и организации доступа для разработчиков до управления затратами и сокращения костов на облачные технологии.
Насколько отличается работа в таком гиганте как Spotify от вашего предыдущего опыта, и сложно ли вообще было туда попасть?
В целом, в большие технологические компании всегда сложнее попасть. Обычно интервью состоит из
Сама работа отличается количеством людей — ты постоянно взаимодействуешь с большим числом специалистов. Например, я работаю в Spotify уже больше 4 лет, и каждый день встречаю новых людей. Это довольно интересно, потому что всегда можно научиться от них чему-то новому. Но с другой стороны, сложно каждый день устанавливать рабочие контакты и выстраивать отношения.
Зато, если что-то не получается в текущей команде, всегда можно поменять ее — а в небольшой компании пришлось бы менять работу. И также есть возможность постоянно работать в новых проектах.
При этом вы успели поработать в совершенно разных сферах: от health tech до ride-hailing и audio streaming. Каковы ключевые различия в подходах к разработке и технологиях в этих отраслях?
Health tech очень отличается от остальных сфер тем, что там приходится работать с конфиденциальной информацией людей. В США есть специальное соглашение HIPAA, которое регламентирует хранение частной информации — нужно использовать особые сервисы, которые имеют нужную сертификацию.
В Meru Health Inc. у нас был очень высокий уровень безопасности проектов — например, на всех аккаунтах была аутентификация с помощью ключей security key. Правила конфиденциальности во многом усложняли нам разработку, потому что мы не могли посмотреть данные самостоятельно, и если возникали ошибки, приходилось угадывать, в чем проблема. Но я считаю, что это правильный подход к безопасности личной информации, и все компании должны его применять.
В целом, отличия в разработке есть в каждой области. Например, во FREE NOW мы работали на разные европейские рынки. И для каждого из них приходилось разрабатывать свои формы для водителей — потому что во всех странах разные регуляторы. Нужно было сделать так, чтобы формы подстраивались под каждый рынок без больших изменений в коде, которые могут потребовать дополнительных ресурсов.
Какой функционал оказался самым сложным в реализации при разработке дашборда для владельцев частных автомобилей для FREE NOW?
Каждый раз, когда водитель выбирал другую страну или регион, мы автоматически перестраивали формы. Чтобы ускорить этот процесс, мы создали язык конфигурации, который потом стал open source проектом. В результате мы просто передавали конфигурацию, например, в json формате, затем она вставлялась в эту библиотеку, и сайт рендерил другой вариант формы без изменения фронтенд-кода.
Таким образом мы сократили много времени на постоянные разработки и модификации основного функционала. Например, форма для новой страны была готова за один день, а не за несколько недель. Просто нужно было написать, в каком порядке идет каждое поле.
Еще одним сложным проектом была переработка дашборда для владельцев частных автомобилей. Мы расширялись с рынка такси до частных автомобилей, наподобие Uber, чтобы водители сами могли регистрироваться и возить людей. Для этого нужно было взять громоздкий старый дашборд и переписать его на React. Это была большая система, с которой никто не хотел взаимодействовать — но мы справились.
Вы разрабатывали экосистему управления затратами, которая экономит Spotify более $500K ежемесячно. Какие технологии и методы помогли достичь такого результата?
Spotify очень много тратил и тратит на облачные технологии, и поэтому нам было интересно, как мы можем сократить эти затраты. Сначала мы определили, на какие категории ресурсов Spotify тратит больше всего денег. Затем мы подробно изучили каждую категорию и посмотрели, как мы можем сократить затраты.
Например, сервера можно было оптимизировать, в зависимости от нагрузки — если она составляла всего
Также мы масштабно оптимизировали хранение данных. В базах данных были терабайты информации, которую никто не использовал — ее мы удалили. Еще настроили автоматическое удаление данных, к которым никто не обращался последние три года.
В итоге мы значительно оптимизировали ресурсы и сэкономили компании сотни тысяч долларов.
Я знаю, что вы работали и с open-source проектами, такими как Backstage.io. Как вы оцениваете их роль в современной разработке?
Да, как раз в Spotify я работал над open source порталом для разработчиков Backstage.io. Внутри него я собрал все важные инструменты для разработчиков: сервисы для управления сервисами, для документации, для автоматизации и т.д. Таким образом, разработчики могут не открывать десятки вкладок, а находиться в едином инструменте, намного ускоряя процесс разработки.
Сначала проект задумывался как внутренний, но потом мы решили поделиться им со всей индустрией. Для нас это был хороший эксперимент, потому что сейчас много компаний используют Backstage.io. Open source позволяет большим компаниям доверять этому продукту, а также мы уверены, что продукт останется на рынке в любом случае — даже если с компанией что-то случится.
Для Spotify этот проект также очень усилил бренд. Через Backstage.io разработчики узнали больше о культуре разработки в Spotify, оценили ее возможности. И теперь нам проще нанимать более квалифицированных сотрудников, которые сразу понимают, с чем они будут иметь дело. Также мы подчеркнули, что Spotify — это не только медиа, но и технологическая компания. Разработчики, которые хотят в нее устроиться, понимают, что точно будут расти, и это их мотивирует.
В целом, я думаю, что будущее за open source проектами. Над их разработкой в одно и то же время может работать много людей, а это минимизирует количество ошибок и позволяет быстрее внедрять новые функции.
С учетом большой нагрузки, остается ли у вас свободное время, и как вы его проводите?
Я провожу много времени с семьей и люблю путешествовать в другие страны. Летом занимаюсь яхтингом — в Нью-Йорке много небольших клубов, где можно выходить в залив на небольших яхтах. Иногда арендую яхту побольше — но это чаще бывает в Европе. Но в целом, свободного времени у меня не слишком много.