Содержание |
Общие вопросы о карьере и достижениях
Ефим, расскажите, пожалуйста, о вашем карьерном пути. Какие ключевые этапы вы бы выделили?
Я уже более девятнадцати лет занимаюсь software development — успел побывать как в роли разработчика, так и в роли engineering manager. В данный момент живу в Лондоне и работаю в качестве tech lead в WhatsApp. До этого у меня был продолжительный период работы в игровой индустрии.
Я начал работать еще на первых курсах университета, и это был прекрасный опыт — он позволил мне разбавить теоретическую информацию, получаемую на занятиях, практическими задачами, с которыми разработчики сталкиваются ежедневно.
Очень важным этапом для меня стало начало работы в игровой индустрии сразу после университета. Game Dev обладает особой атмосферой, и я до сих пор поддерживаю связь со многими коллегами из моей первой компании. В игровой индустрии люди с самыми разными навыками и опытом работают вместе, и это создает уникальную, постоянно меняющуюся динамику и процессы.
Конечно, важным шагом для меня стало начало работы в крупной международной компании — моей первой была Glu Mobile. Я считаю, что мне очень повезло попасть туда: меня окружали талантливые люди, которые многому меня научили. Я также получил бесценный опыт работы с распределенными по всему миру командами и значительно вырос как в профессиональном, так и в карьерном плане. В конечном итоге, я начал управлять всей серверной и DevOps-разработкой в нашей студии.Группа компаний «ВДГБ»: 28 лет успеха на рынке 1С
Вы возглавляли группы разработки в нескольких компаниях. Какие проекты вы считаете самыми успешными и почему?
Самые успешные и вдохновляющие проекты мне запомнились из периода работы в Glu Mobile. Особенно мне понравилось, как мы разработали движок, который позволял масштабировать серверы в зависимости от нагрузки. В игровой индустрии, по крайней мере на тот момент, количество пользователей сильно зависело от маркетинга и поведения платформ. Например, если Apple решила показать вашу игру в топе лучших в каком-то жанре по всему миру, количество пользователей резко возрастало, и на графике нагрузки это выглядело как взлетевший до небес пик. Удержать пользователей во время таких пиков — ключевая задача, и крайне важно, чтобы серверы выдержали любую нагрузку.
На тот момент стандартным решением была покупка мощных серверов в стойке в дата-центре в одной из приоритетных стран. Мы же пошли дальше: начали использовать инфраструктуру AWS, распределили серверы по всему миру для лучшего времени отклика для игроков и разработали механизм автоматического масштабирования виртуальных машин в зависимости от количества пользователей.
Этот проект был очень важен: он не только позволил нам сэкономить деньги и удержать пользователей, но и принес массу удовольствия, так как было ощущение, что мы работали на cutting edge для индустрии.
Что вас вдохновляет в вашей работе? Есть ли у вас профессиональные кумиры или примеры для подражания?
Больше всего меня вдохновляет ощущение, что моя работа приносит пользу. Еще я заметил, что для меня важно, чтобы была сложная техническая или лидерская задача — в конце возникает приятное чувство, будто ты решил головоломку. Если это подкрепляется тем, что ты видишь, как много людей пользуются тем, что ты создал, и сколько денег это приносит компании, то это дает огромную мотивацию преодолевать любые трудности на работе.
Меня всегда вдохновляли люди, которые продвигали и преподавали computer science как область — это исторические фигуры или лекторы курсов именитых университетов. На YouTube можно найти много такого материала, например, мой любимый курс от MIT по Distributed Systems. Мне очень нравится, когда сложные концепции объясняют понятным языком — я считаю, что в нашей профессии это ключевой навык.
Вопросы о технических навыках и подходах
Как вы следите за новыми тенденциями и технологиями в области разработки программного обеспечения?
Мне больше всего нравится узнавать о новых тенденциях, общаясь напрямую с другими людьми или проактивно исследуя их на практике во время работы или хобби-проекта. Не так давно у меня был период, когда я старался читать по одной whitepaper в наиболее интересной для меня области (распределенные системы). Это было довольно полезно, хоть и не всегда эффективно — не все, что ты читаешь, можно сразу применить на практике, и поэтому это легче забыть. Тем не менее, этот опыт сильно на меня повлиял — умение разобраться и понять сложную концепцию очень полезно постоянно тренировать.
Можете ли вы рассказать о сложных технических задачах, которые вам удалось решить? Какой подход вы использовали?
Лучшие периоды моей карьеры предполагали постоянное решение сложных технических задач — это, на мой взгляд, ключевой момент для профессионального и, как следствие, карьерного роста. Одна из задач, которую я до сих пор помню, возникла на одной из моих первых работ, когда я еще учился в университете. Мне нужно было разработать движок для автоматического end-to-end тестирования, то есть библиотеку, которая помогала бы писать UI-тесты, используя команды вроде "кликни на эту кнопку", "проверь, что на этом view появился текст". Концептуально это было похоже на Selenium, но только не для Web, а для Windows Desktop и строго под нужды конкретного проекта, написанного на популярном тогда языке программирования Delphi.
Изначально я допустил ошибку, пытаясь создать библиотеку для любых приложений на Windows, но быстро понял, что это не решает эффективно конкретную задачу. Я принял решение частично сделать библиотеку общей, но там, где сложно решить в общем случае и легко в конкретном, выбрать конкретное решение под наш проект. Это мне тогда сильно помогло. Подобные компромиссы важны для того, чтобы сохранять интерес к работе и эффективно решать практические задачи.
Какие рекомендации вы бы дали молодым специалистам, которые хотят развиваться в области разработки серверного ПО?
Задача, о которой я рассказывал в предыдущем вопросе, была хорошо сформулирована, имела четкие границы и при этом была чрезвычайно амбициозной. Мне кажется, что именно за такими задачами стоит охотиться для профессионального роста.
С другой стороны, по моему опыту, такие задачи редко встречаются в реальной жизни, поэтому я бы посоветовал тренировать навык превращения непонятных задач в те, которые вам лично абсолютно понятны. Это очень пригодится на более поздних этапах карьеры, когда становится важнее доносить свои мысли до других людей.
Вопросы о будущем и личных целях
Как вы видите будущее технологий и свою роль в этом? Какие новые направления вас интересуют?
Сейчас очень много всего строится с использованием систем Generative AI, и это кажется мне просто замечательным черным ящиком, который решает множество задач, ранее занимавших время. Например, Generative AI успешно справляется с генерацией простого кода прямо в вашей любимой среде разработки — чтобы написать примитивный код, теперь достаточно нажать tab, и в большинстве случаев результат будет именно таким, как вы ожидали. Последнее значительное улучшение моей продуктивности произошло, когда я впервые увидел хорошо работающую подсказку выбора полей и методов класса после того, как поставишь точку после имени объекта.
С другой стороны, если взглянуть на это под более широким углом, возможно, AI автоматизирует не те вещи. Мое видение счастливого будущего заключалось в том, что машины автоматизируют рутинные процессы, которые отвлекают людей от творчества — простую монотонную работу, бытовые задачи, такие как мытье посуды, стирка и уборка. В реальности же, Generative AI фокусируется на автоматизации творческих процессов — он может рисовать картины и писать рассказы, тогда как рутина остается за бортом.
Очень интересно, куда все это приведет нашу индустрию и мир в целом.
Есть ли у вас профессиональные цели или мечты, которых вы еще не достигли? Что это и как вы планируете их реализовать?
Я всегда мечтал строить масштабные, полезные продукты для людей — мне кажется, это очень вдохновляющий процесс, приносящий массу удовольствия. Другое направление, которое меня всегда интересовало, — это научный прогресс. Было бы здорово исследовать новые области и изучать вещи, над которыми мало кто работал.
В идеальной вселенной можно было бы объединить эти две сферы и, например, поработать в biotech-секторе, в компаниях вроде Neuralink, которые разрабатывают интерфейс между мозгом и компьютером, помогающий парализованным людям жить более полной жизнью. Это малоизученная сфера, которая действительно может помочь многим людям и потенциально изменить мир, если такие технологии станут массово доступными.
Автор: Кирилл Добронравов