Путь из биоинформатики в продакт-менеджмент
Костя Чукреев занимался биоинформатикой, но решил оставить науку и попробовать себя сначала в качестве аналитика и разработчика машинного обучения, а потом и менеджера продукта в Яндексе. Он рассказал, какими проектами занимаются биоинформатики, как научный бэкграунд может пригодиться в индустрии и какие знания нужно будет подтянуть перед собеседованием.
Если вы, как и герой нашего материала, интересуетесь этой областью или просто разработкой, то до 18 июня вы можете зарегистрироваться на Международную олимпиаду по биоинформатике. Она будет проходить онлайн, и в ней можно поучаствовать из любой страны. Партнёры олимпиады — Яндекс, Genotek и JetBrains.
Занятия наукой
Я с детства любил программирование, обожал писать на Java, а ещё увлекался физикой. В школе её преподавала учительница, которая к тому же вела биологию, и на уроках часто обращалась сразу к двум этим предметам. Мне было интересно, существует ли наука на стыке биологии, физики и информатики, какие задачи она может помогать решать. Оказалось, есть: это биоинформатика, молодая и развивающаяся область. Биоинформатики используют методы компьютерных наук, статистики и математики, чтобы анализировать биологические данные: например, последовательности белков или геномов. Результаты применяют для разработки новых лекарств, способов диагностики заболеваний, изучения эволюции организмов и строения клеток.
Этот мир увлёк меня настолько, что я поступил на факультет биологической и медицинской физики в МФТИ и выбрал кафедру биоинформатики. Проучился там шесть лет, а в процессе поработал над несколькими проектами. Например, на третьем курсе я попал на двухмесячную стажировку в парижский Институт Пастера, где изучал ДНК у возбудителей малярии, чтобы понять, как лечить это заболевание. Занимался задачей кластеризации и выявлял разные ДНК-модификации, по которым можно сделать выводы о поведении и жизненном цикле возбудителя малярии. Это был мой первый ML-проект.
Для дипломного проекта в МФТИ я изучал мутацию вируса туберкулёза: чтобы предсказать, какой антибиотик можно будет использовать для лечения. В России туберкулёз — это большая проблема, и мне хотелось над ней поработать. Ещё в таких исследованиях решается стандартная задача машинного обучения, в которой нужно обработать большое количество данных и провести классификацию.
Магистерский проект я писал в римском филиале Европейской молекулярно-биологической лаборатории, полгода жил в Италии. Вместе с научным руководителем мы анализировали 30 000 генов мышей, искали и выделяли схожие типы клеток. Применяли кластеризацию, создали простой и удобный пакет для работы с данными на 2000 строк на языке R. Теперь его можно использовать для разных задач: например, для построения визуализаций о работе отдельной клетки или её возможных мутациях.
Всё было хорошо, но в какой-то момент я понял, что в моей команде не так много людей с хорошими математическими навыками. А мне очень хотелось развиваться в ML — поэтому я разорвал контракт, вернулся в Россию и стал искать работу.
Переход в IT
Я решил не уходить в никуда, а поискать проект на стыке биологии и технологий. Наткнулся на стартап BostonGene, помогающий врачам диагностировать рак при помощи методов машинного обучения и биоинформатики, и пошёл к ним. Параллельно я думал о Яндексе, посматривал вакансии и однажды нашёл интересную стажировку в команде аналитиков в Геосервисах.
Надо сказать, что к Яндексу я испытывал большую любовь: мечтал поступить в ШАД, с восхищением относился к разработчикам CatBoost. И когда посреди новой работы и устоявшейся жизни мне позвонили из Яндекса, ощущения были невероятные. Мне понравились предложенные задачи (аналитика маршрутов и пользовательских событий в приложении Навигатора), и я стал готовиться к собеседованию.
Чтобы попасть в Яндекс на вакансию специалиста по анализу данных, нужно многому научиться. Поэтому я написал план и стал заниматься каждый вечер, проходил онлайн-курсы и изучал статистику. Довольно быстро нашёл на Coursera специализацию МФТИ и Яндекса, которую делали Виктор Кантор и Эмели Драль. Я прошёл её, а потом ещё три курса по статистике на платформе Stepik, курс по Docker (правда, он мне не пригодился) и Python.
Самым сложным в подготовке для меня оказалось изучение алгоритмов. От знакомых я узнал, что в Яндексе им уделяется много времени: эти задания помогают выделять кандидатов с техническим бэкграундом среди остальных.
Я учил алгоритмы каждый день — даже когда ехал на электричке из Долгопрудного в Москву, продолжал решать задания. Этих 20 минут хватало на две задачи. Обычно я ухитрялся найти место в вагоне, а иногда решал их стоя. Через какое-то время успокоился и понял, что могу написать по памяти бинарный поиск где угодно, и не зря постоянно учился. А потом прошёл на стажировку.
От аналитики до управления продуктом
За три месяца я успел изучить основные технологии и инструменты, правила разработки и общие библиотеки Яндекса, поработать над реальными задачами в нескольких командах. Занимался анализом маршрутов в клиентском приложении и сделал дашборд их эффективности.
Чтобы успешно пройти стажировку, важно уметь работать в команде и хорошо выполнять работу на каждом этапе. Не только общаться с большим количеством людей, но и быть готовым к оценке других: твой код будут смотреть, и ты сам будешь комментировать чужую работу. Нужно понимать, как встраиваться в эти процессы. В науке всё по-другому: результат важнее процесса, а промежуточные этапы скорее нужны для уточнения пути.
Не уронить что-нибудь на стажировке сложно — иначе ты и не стажировался. И я, конечно, тоже ошибался. К тому же, я импульсивный человек и сделать что-то спонтанно для меня святое дело.
История простая: пошёл попить кофе с другом, параллельно загружал новый алгоритм подсчёта метрик в прод, случайно нажал не ту кнопку и удалил основную ветку репозитория — а это трёхнедельная работа команды из восьми человек. Я понял, что стёр все данные, уже когда вернулся в офис. Стали разбираться, что произошло, убили на восстановление час, пока один опытный коллега всё не исправил и не вернул на место данные. Слава богу, GitHub очень надёжная система. Я боялся, что меня уволят, но всё закончилось хорошо. Мой ментор только спросил: «Ты понял, в чём была твоя ошибка?» Я понял. И рад, что меня после этого оставили в Яндексе.
Cтажировка даёт возможность попробовать несколько направлений внутри компании, познакомиться с разными командами, чтобы потом выбрать дело по душе. Разработчику, хорошо знающему машинное обучение, открывается целый мир интересных и полезных задач. Поэтому после стажировки я решил найти вакансию ML-разработчика.
Я выбрал для себя несколько сервисов — Телефон, Дзен, Маркет и Go (в него входят Такси, Драйв, Еда и Лавка). Перед окончанием стажировки я подошёл к эйчару и рассказал, что мне хотелось бы стать разработчиком в одной из этих команд.
Я прошёл несколько собеседований и оказался в Go. Там я занимался задачами Еды: не только сортировкой ресторанов, но и рекомендациями, предсказаниями пользовательского выбора. Приятно, что можно было увидеть свой вклад, открыв у себя приложение, которым пользуются миллионы людей.
Через полтора года я понял, что хочу больше влиять на продукт, которым занимаюсь. К тому же, у меня много знаний из разных областей: кажется, я больше подхожу на роль продакт-менеджера, чем разработчика. Поэтому я выбрал сервис, который мне нравился (это была Яндекс.Лавка), написал об этом желании своему руководителю, мы поговорили и начали процесс ротации. Я прошёл собеседования и стал менеджером продукта в Лавке.
Эта работа меня ещё сильнее зажигает, хочется делать больше и лучше.
Сейчас я стал счастливее, потому что окружён людьми, с которыми мне интересно. Я могу поговорить не только про науку, но и про менеджмент, дизайн, разработку или математику. В Яндексе как в одной большой семье или команде можно «расти об других людей» — это сложно, но очень интересно.
Научный бэкграунд и работа в индустрии
Научный опыт помогает мне не бояться начинать новое, переходить в другие сферы и изучать что-то с нуля. Поэтому в плюсах исследовательского бэкграунда — приобретённая смелость и большое количество знаний на стыке разных областей, междисциплинарность. Международные проекты, общение со специалистами из разных отраслей также помогают прокачать soft skills — навыки организации и ведения переговоров, способность учиться и адаптироваться к изменениям.
В отличие от индустрии, в науке всегда есть какая-то неопределённость, это постоянный процесс познания. У задачи может быть миллион решений, поэтому важно пробовать все варианты — но это не всегда быстро. В индустрии у команды не так много времени на построение идеальной гипотезы. Часто сначала разрабатывается MVP, который дорабатывают со временем. Зато быстрее можно увидеть свой вклад в проект.
В карьерном плане мне близок пример Владимира Игловикова, высококлассного специалиста по компьютерному зрению. В его портфолио двойная аспирантура в области прикладной физики в США, множество побед на соревнованиях по анализу данных и машинному обучению, а также работа в Bidgely (американском стартапе, разрабатывающем решения для учёта электроэнергии) и TrueAccord, компании, помогающей сбору долгов. В одном из интервью он рассказал, что сейчас развиваться в индустрии и быть в IT-сообществе ему интереснее: тут более быстрый рост и множество задач, а также проще приобретать новые навыки.
Я с ним согласен, но работа в индустрии не означает, что возврата к науке больше не будет. Переходить между сферами в зависимости от того, что тебе интересно в данный момент — это нормально.