Привет! На экране перед тобой снова текст за авторством ребят из Hays — а значит, мы опять делимся своей экспертизой в мире IT-вакансий. Сегодня мы рассказываем о профессии R&D Engineer в IT. Разбираемся, чем они занимаются, сколько зарабатывают и куда двигаются по карьерной лестнице дальше.
R&D Engineer / Researcher (инженер-исследователь, разработчик-исследователь) занимается исследованиями и разработкой инновационных продуктов, технологий и процессов.
Часто такие специалисты работают в научно-исследовательских центрах крупных ИТ-компаний или вузов, а также во многих других индустриях: от фармацевтической до транспортной.
Примерно так выглядит список задач, которыми занимается R&D Engineer в IT-сфере.
Проведение исследований для решения различных проблем и вопросов (в зависимости от компании и сферы они могут отличаться).
Разработка и реализация алгоритмов.
Оптимизация и ускорение кода, нейронных сетей и пр.
Создание прототипов.
Создание концептов новых или уже существующих продуктов.
Разработка процессов.
Разработка и создание инструментария для команд разработки.
Написание научных статей и пр.
Основная цель R&D Engineer’а — разработать инновационное технологическое решение или продукт.
Кратко о методологии работы:
В частных компаниях обычно в качестве методологии применяется Agile, но от команды к команде (или от компании к компании) могут быть использованы разные его фреймворки, в том числе кастомизированные под процессы и нужды. Среди фреймворков, которые встречаются наиболее часто, можно выделить Scrum, Kanban и др.
В научно-исследовательских институтах бывают ситуации, когда нет возможности применять Agile и используется Waterfall (иногда с элементами Agile в командах). Зачастую это зависит от заказчика и специфики некоторых проектов (например, в государственных проектах).
На кого и чему учиться?
Специалисту в области R&D чаще всего необходимо иметь как минимум степень бакалавра в области математики, физики, computer science или смежных профилях. Иногда работодатели отдают предпочтение специалистам со степенью магистра или кандидата наук.
Подобные требования сложились из-за того, что чаще именно специалисты с таким образованием обладают достаточными математическими и алгоритмическими знаниями, а также успешно проходят технические собеседования.
Дополнительным плюсом и отличной возможностью для старта карьеры будет прохождение стажировки в R&D-отделе/лаборатории ИТ-компании. Это поможет в обретении практического опыта и использовании навыков, которые кандидаты получили в университете.
Работодатели также уделяют внимание участию в конкурсах и олимпиадах.
Требования к R&D Engineer
Среди обязательных требований, которые работодатели предъявляют кандидатам, можно выделить несколько важнейших.
Высшее профильное образование (техническое/математическое).
Математический и алгоритмический бэкграунд (знание линейной алгебры, теории вероятности, статистики, алгоритмов и структур данных и пр.).
Владение одним или несколькими языками программирования: C/C++, Python, Java, C# (часто важен коммерческий опыт разработки).
Знание и опыт работы с соответствующими фреймворками.
Вернемся к требованиям. Кроме перечисленных выше, в некоторых компаниях и для некоторых проектов к кандидатам могут быть предъявлены дополнительные требования.
Знание принципов и опыт применения Machine Learning (а также Deep Learning и пр.).
Постоянное обучение, образование.
Знание английского языка (для письменного и устного общения с коллегами; для вакансий крупных международных ИТ-компаний).
Опыт работы в распределенной команде.
Наличие публикаций, патентов, выступлений на конференциях.
Мотивация и карьерный рост
Для сотрудников на роли R&D Engineer в качестве материальной мотивации выступают:
бонусы по результатам работы;
бонусы за публикации, патенты и пр.;
регулярный пересмотр заработной платы / индексация / заработная плата в долларах США.
Помимо этого, существуют и нематериальные мотиваторы:
техническая сложность / инновационность проекта;
используемые технологии и инструменты (предпочтение отдается современным технологиям);
возможность участвовать в международных проектах;
возможность релокации;
возможность видеть результат своей работы;
команда профессионалов и возможность обмениваться опытом.
Карьерное развитие R&D Engineer — это прежде всего расширение ответственности, возможность принимать участие в ключевых решениях, а также рост в сторону управления командой и перехода в роль Team Lead.
Также R&D Engineer может в будущем перейти в роль Архитектора или Project Manager’а, где его технические навыки будут крайне востребованы.
Некоторые специалисты сильно погружаются в научно-исследовательскую деятельность при ИТ-компаниях или в вузах (в том числе иностранных), возглавляют отделы и лаборатории.
О чём спросят на интервью?
Для R&D-инженеров самая главная стадия общения с компаниями — это техническое интервью. В зависимости от компании может быть один или несколько этапов.
На стадии собеседований техническая команда или руководитель обычно проверяют знания и навыки кандидата в рамках предметной области проекта, к которому относится вакансия. Отвечая на вопросы об опыте, в том числе опыте применения различных технологий, важно приводить примеры, как и где вы их использовали.
Вопросы об опыте
Зачастую задаются общие вопросы, чтобы понять вашу роль и зону ответственности на предыдущих местах работы, в подробностях разобраться в проекте и его особенностях. Это позволяет сформировать ясную картину того, насколько ваш опыт будет полезен команде сейчас. Также некоторые руководители задают вопросы о том, что сделали на проекте именно вы и как это сказалось на общем результате.
Теоретические вопросы
Часто на собеседованиях проверяют академические знания ООП, линейной алгебры, математики, могут спросить про алгоритмы и структуры данных, про теорию Machine Learning (если это относится к вакансии) и пр.
Перед некоторыми собеседованиями работодатель может дать инструкции, что лучше прочитать или вспомнить перед общением. Спрашивайте у рекрутеров или HR-менеджеров, есть ли какие-то рекомендации по подготовке к интервью.
Алгоритмические задачи
В процессе интервью могут предлагаться алгоритмические задачи различной степени сложности. Одни компании дают их в рамках тестового задания, чтобы кандидаты могли посмотреть на то, чем предстоит заниматься, и соотнести это со своими интересами. Другие компании дают эти задачи в режиме реального времени.
Live-coding
Реже, но также в зависимости от компании или команды, кандидату может быть предложено в процессе интервью продемонстрировать свои навыки кодинга.
Что обязательно указать в резюме?
Резюме должно исчерпывающе отражать опыт работы, проекты, роль и задачи, результаты и hard skills (в зависимости от наличия NDA). Также важно указывать любую нерабочую деятельность: личные проекты, примеры кода, публикации, участие в конференциях и пр.
Чем грамотнее составлено резюме, тем больше вероятности, что ни кандидат, ни работодатель не потратят время на обсуждение вакансии зря. Вот примерный чек-лист того, что важно отразить в резюме.
Опыт работы, с описанием своей роли, задач, зоны ответственности, проекта (если нет NDA) и его особенностей.
Стэк технологий, который использовался на проекте.
Технологии и инструменты, которыми владеет кандидат.
Образование и дополнительное образование (публикации или участие в конференциях, если есть).
Знание иностранных языков.