Создаём и развиваем софт для роботов для складской логистики. Решаем задачи автономной инвентаризации и перевозки товаров внутри складов Маркета. Разрабатываем полный стек технологий для роботов: от навигации и локализации до управления флотом роботов.
Ключевые задачи
Локализация или позиционирование роботов внутри складов с использованием искусственных меток и данных с лидаров и камер
Навигация роботов в помещении, которая состоит из планирования оптимального пути, следования ему, а также детектирования и объезда препятствий
Управление флотом роботов, в том числе взаимодействие с системами управления складом
Стек технологий для разработчика в команду роботов
Специализированный код
(1ч + 15 мин резервного времени на технические проблемы)
Предлагаем решить две задачи: одну совсем простенькую для разминки и вторую на различные примитивы, используемые в робототехнике (графы, деревья, матрицы, линейная алгебра и т. п.).
Техническая секция
(1ч + 15 мин резервного времени на технические проблемы)
Задаём много вопросов из области, в которую вы идёте (в инфраструктуре — про Linux, в локализации и навигации — про базовые алгоритмы в роботах). Можем дать простенькую архитектурную задачку на соответствующую тему.
Алгоритмическая секция
(~1,5 ч)
Предлагаем решить две задачи с использованием базовых алгоритмов и структур данных в редакторе с подсветкой кода. Задачи не требуют знания конкретных известных алгоритмов или редких структур данных, но вам поможет подготовиться практика на Leetcode (уровень easy/medium, например).
Архитектура
(1,5 ч)
Секция возможна для калибровки уровня/навыка
Проектируем сервис, нужный в соответствующей области (инфраструктура или навигация и локализация) или даже целого робота, решающего некоторую задачу в известном окружении.
Знакомство с лидом/техлидом
(~1 ч)
На этой встрече мы поговорим о вашей мотивации и комфортной роли в команде, расскажем про наши проекты, задачи, стек, технологии и процессы, ответим на вопросы. Может быть несколько отдельных финалов, чтобы познакомиться с разными командами.
Специализированный код
(1 ч + 15 минут резервного времени на технические проблемы)
Предлагаем решить две задачи: одну совсем простенькую для разминки и вторую на различные примитивы, используемые в робототехнике (графы, деревья, матрицы, линейная алгебра и т. п.).
Техническая секция
(1 ч + 15 минут резервного времени на технические проблемы)
Задаём много вопросов из области, в которую вы идёте (в инфраструктуре — про Linux, в локализации и навигации — про базовые алгоритмы в роботах). Можем дать простенькую архитектурную задачку на соответствующую тему.
Алгоритмическая секция
(~1,5 ч)
Предлагаем решить две задачи с использованием базовых алгоритмов и структур данных в редакторе с подсветкой кода. Задачи не требуют знания конкретных известных алгоритмов или редких структур данных, но вам поможет подготовиться практика на Leetcode (уровень easy/meduim, например).
Архитектура
(1,5 ч)
Секция возможна для калибровки уровня/навыка
Проектируем сервис, нужный в соответствующей области (инфраструктура или навигация и локализация), или даже целого робота, решающего некоторую задачу в известном окружении.
Знакомство с лидом/техлидом
(~1 ч)
На этой встрече мы поговорим о вашей мотивации и комфортной роли в команде, расскажем про наши проекты, задачи, стек, технологии и процессы, ответим на вопросы. Может быть несколько отдельных финалов, чтобы познакомиться с разными командами.
Несколько полезных советов
Во время подготовки к секциям
Потренируйтесь в решении подобных задач на LeetCode
и доведении их до конца, чтобы решение проходило все
тесты. Обязательно набить руку на easy (аккуратность),
желательно попробовать medium (комбинация простых
алгоритмов/структур данных), hard смотреть
необязательно (хардкорные алгоритмы).
Освежите в памяти курс алгоритмов и структур данных.
Вспомните основные структуры данных, их сильные
и слабые стороны, особенности, базовые алгоритмы типа
сортировок и обходов графов. Не нужно ботать
доказательство корректности, достаточно понимать, как
они работают.
Потренируйтесь в придумывании тестов для собственного кода, попробуйте самостоятельно придумывать краевые случаи, для которых может потребоваться реализация отдельной логики.
Потренируйтесь находить баги в своем коде без компиляции/исполнения.
Потренируйтесь в решении подобных задач на LeetCode и доведении их до конца, чтобы решение проходило все тесты. Обязательно набить руку на easy (аккуратность), желательно попробовать medium (комбинация простых алгоритмов/структур данных), hard смотреть необязательно (хардкорные алгоритмы).
Освежите в памяти курс алгоритмов и структур данных. Вспомните основные структуры данных, их сильные и слабые стороны, особенности, базовые алгоритмы типа сортировок и обходов графов. Не нужно ботать доказательство корректности, достаточно понимать, как они работают.
Потренируйтесь в придумывании тестов для собственного кода, попробуйте самостоятельно придумывать краевые случаи, для которых может потребоваться реализация отдельной логики.
Потренируйтесь находить баги в своём коде без компиляции/исполнения.
Во время решения задач на секциях
Проговаривайте свои мысли вслух — это поможет вам не запутаться в собственных мыслях и даст возможность интервьюеру следить за ходом ваших размышлений и дать верную подсказку, если она потребуется.
Не забывайте проверять код на наличие ошибок перед тем, как сдать его интервьюеру.
Не бойтесь спрашивать непонятные для вас моменты и коммуницировать с интервьюером.
Проговаривайте свои мысли вслух — это поможет вам не запутаться в собственных мыслях и даст возможность интервьюеру следить за ходом ваших размышлений и дать верную подсказку, если она потребуется.
Не забывайте проверять код на наличие ошибок перед тем, как сдать его интервьюеру.
Не бойтесь спрашивать непонятные для вас моменты и коммуницировать с интервьюером.
Среднее время прохождения всех этапов — 1–2 недели. Но если вы ограничены по срокам или хотите больше времени на подготовку — предупредите, пожалуйста, рекрутера, мы очень постараемся подстроиться.