О компании
Команда разрабатывает системное ПО микроконтроллеров для блоков управления автономными автомобилями, общие программные компоненты для разных устройств и инфраструктуру для сборки, тестирования и сопровождения Embedded ПО.
Обязанности
- Руководить командой и развивать её: планировать работу, оценивать сроки, делегировать задачи с учётом опыта и нагрузки, помогать разработчикам расти через менторство и разбор технических решений.
- Разрешать технические споры, принимать архитектурные решения и улучшать процессы разработки.
- Развивать архитектуру Embedded ПО, определять границы между системными и прикладными компонентами и проектировать интерфейсы.
- Создавать общие компоненты для использования в разных устройствах.
- Решать задачи распределения работы между ядрами многоядерных микроконтроллеров, межъядерного взаимодействия и синхронизации с учётом требований реального времени.
- Разрабатывать драйверы, сервисы RTOS и загрузчики; выполнять bring-up новых плат и отлаживать базовое ПО и периферию.
- Развивать системы сборки и CI, автоматизировать сборку и тестирование проектов, создавать и сопровождать инфраструктуру HIL-стендов.
- Согласовывать изменения общих компонентов с командами прикладной разработки, проверять системное ПО в тестах и проводить код-ревью.
- Лично участвовать в разработке и отладке ПО, помогать разработчикам решать сложные технические задачи и осваивать новые навыки.
Требования
- Опыт руководства командой разработки от трёх человек, делегирования задач, распределения нагрузки и развития разработчиков.
- Умение планировать работу команды, оценивать сроки, разрешать конфликты и обсуждать разногласия.
- Опыт разработки ПО для современных микроконтроллеров и применения RTOS.
- Опыт работы с интерфейсами обмена данными, например UART, SPI, I2C, CAN или Ethernet.
- Опыт настройки и использования CI/CD.
- Уверенное владение C и C++.
- Знание алгоритмов и структур данных, применение SOLID и паттернов проектирования.
- Уверенное владение системами контроля версий.
- Умение самостоятельно принимать технические решения или принимать их с помощью экспертов.
- Умение читать техническую документацию на английском языке.
- Будет плюсом опыт работы в Unix-подобном окружении и с консольными инструментами, разработки скриптов автоматизации на Bash или Python, работы с Docker, в автомобильной индустрии, умение читать принципиальные схемы и разговорный английский.
Условия
- Работа в офисе в Москве.
- Работа над надёжным ПО с учётом требований ISO 26262 и правил MISRA.