Тимлид Embedded ПО в Автономный транспорт (системное ПО)
Все вакансии Яндекс в Москве
Москва
Полная занятость
Описание
Наша цель — разрабатывать надёжное ПО с учётом требований ISO 26262 и правил MISRA.
Для этого мы:
- Внедряем процессы разработки ПО из автоиндустрии
- Развиваем общую архитектуру ПО, драйверы и сервисы RTOS
- Пишем unit-тесты и развиваем инфраструктуру HIL-стендов для функционального тестирования
- Автоматизируем сборку и тестирование проектов в CI
Вы будете «играющим тренером»: предстоит руководить командой и лично участвовать в разработке и отладке ПО. Нужно будет помогать разработчикам решать сложные технические задачи и осваивать новые навыки.
Какие задачи вас ждут:
Управление командой и её развитие
Вам предстоит планировать работу команды, оценивать сроки и делегировать задачи с учётом опыта и нагрузки разработчиков. Вы будете помогать им расти через менторство и разбор технических решений, а также разрешать технические споры, принимать архитектурные решения и улучшать процессы разработки.
Технические задачи
Вы будете развивать общую архитектуру Embedded ПО: определять границы между системными и прикладными компонентами и проектировать их интерфейсы. Необходимо создавать общие компоненты, которые команды используют в разных устройствах.
Мы работаем с многоядерными микроконтроллерами — это возможность углубить экспертизу в архитектуре Embedded ПО. Вам предстоит решать задачи распределения работы между ядрами, межъядерного взаимодействия и синхронизации с учётом требований реального времени.
Вместе с командой вы будете разрабатывать драйверы, сервисы RTOS и загрузчики. Понадобится выполнять bring-up новых плат — запускать и отлаживать на них базовое ПО и периферию.
Вам предстоит развивать системы сборки и контур CI, автоматизировать сборку и тестирование проектов, создавать и сопровождать инфраструктуру HIL-стендов.
Вы будете согласовывать изменения общих компонентов с командами прикладной разработки, проверять системное ПО в тестах и проводить код-ревью.
Больше о разработке в Яндексе — в канале Yandex for Developers
Мы ждем, что вы:
- Руководили командой разработки от трёх человек, умеете делегировать задачи, распределять нагрузку и помогать разработчикам расти
- Планировали работу команды и оценивали сроки, умеете разрешать конфликты и обсуждать разногласия
- Разрабатывали ПО для современных микроконтроллеров и применяли RTOS в проектах
- Работали с интерфейсами обмена данными, например с UART, SPI, I2C, CAN или Ethernet
- Настраивали и использовали CI/CD
- Уверенно пишете на C и C++
- Знаете алгоритмы и структуры данных, применяете SOLID и паттерны проектирования
- Уверенно владеете системами контроля версий
- Принимаете технические решения самостоятельно или с помощью экспертов
- Читаете техническую документацию на английском языке
Будет плюсом:
- Работали в Unix-подобном окружении и с консольными инструментами
- Разрабатывали скрипты автоматизации на Bash или Python, работали с Docker
- Работали в автомобильной индустрии
- Читаете принципиальные схемы
- Владеете разговорным английским языком
Для этого мы:
- Внедряем процессы разработки ПО из автоиндустрии
- Развиваем общую архитектуру ПО, драйверы и сервисы RTOS
- Пишем unit-тесты и развиваем инфраструктуру HIL-стендов для функционального тестирования
- Автоматизируем сборку и тестирование проектов в CI
Вы будете «играющим тренером»: предстоит руководить командой и лично участвовать в разработке и отладке ПО. Нужно будет помогать разработчикам решать сложные технические задачи и осваивать новые навыки.
Какие задачи вас ждут:
Управление командой и её развитие
Вам предстоит планировать работу команды, оценивать сроки и делегировать задачи с учётом опыта и нагрузки разработчиков. Вы будете помогать им расти через менторство и разбор технических решений, а также разрешать технические споры, принимать архитектурные решения и улучшать процессы разработки.
Технические задачи
Вы будете развивать общую архитектуру Embedded ПО: определять границы между системными и прикладными компонентами и проектировать их интерфейсы. Необходимо создавать общие компоненты, которые команды используют в разных устройствах.
Мы работаем с многоядерными микроконтроллерами — это возможность углубить экспертизу в архитектуре Embedded ПО. Вам предстоит решать задачи распределения работы между ядрами, межъядерного взаимодействия и синхронизации с учётом требований реального времени.
Вместе с командой вы будете разрабатывать драйверы, сервисы RTOS и загрузчики. Понадобится выполнять bring-up новых плат — запускать и отлаживать на них базовое ПО и периферию.
Вам предстоит развивать системы сборки и контур CI, автоматизировать сборку и тестирование проектов, создавать и сопровождать инфраструктуру HIL-стендов.
Вы будете согласовывать изменения общих компонентов с командами прикладной разработки, проверять системное ПО в тестах и проводить код-ревью.
Больше о разработке в Яндексе — в канале Yandex for Developers
Мы ждем, что вы:
- Руководили командой разработки от трёх человек, умеете делегировать задачи, распределять нагрузку и помогать разработчикам расти
- Планировали работу команды и оценивали сроки, умеете разрешать конфликты и обсуждать разногласия
- Разрабатывали ПО для современных микроконтроллеров и применяли RTOS в проектах
- Работали с интерфейсами обмена данными, например с UART, SPI, I2C, CAN или Ethernet
- Настраивали и использовали CI/CD
- Уверенно пишете на C и C++
- Знаете алгоритмы и структуры данных, применяете SOLID и паттерны проектирования
- Уверенно владеете системами контроля версий
- Принимаете технические решения самостоятельно или с помощью экспертов
- Читаете техническую документацию на английском языке
Будет плюсом:
- Работали в Unix-подобном окружении и с консольными инструментами
- Разрабатывали скрипты автоматизации на Bash или Python, работали с Docker
- Работали в автомобильной индустрии
- Читаете принципиальные схемы
- Владеете разговорным английским языком