👀 Дизайнеры, с какой командой вы мэтчитесь по вайбам? Проверяйте на Вайб-чеке→ vibe.habr.com

Ведущий С/С++ разработчик (Embedded)

Местоположение и тип занятости

МоскваПолный рабочий день

Компания

Международная компания, специализирующаяся на консалтинге, технологических услугах и аутсорсинге

Описание вакансии

Условия работы

Bell Integrator – один из ведущих системных интеграторов страны. 

Мы являемся аккредитованной ИТ-компанией.

На текущий момент с нами работает более 2500 высококлассных аналитиков, руководителей проектов, разработчиков, тестировщиков и специалистов по сопровождению крупных информационных систем. Bell Integrator активно реализует проекты по всей России, среди наших заказчиков – крупнейшие системообразующие финансовые, телеком и ритейл компании страны.Центральный офис Bell Integrator расположен в Москве, представительства – в Нижнем Новгороде, Пензе, Саратове, Уфе, Минске (Беларусь).

Основные требования:

  • Опыт работы от 3 лет
  • Умение работать в команде в условиях коллективного владения кодом, аккуратность, ответственность, широкий кругозор
  • • Нацеленность на долгосрочное сотрудничество
  • • Высшее техническое образование
  • • Хорошее знание английского языка (для общения на технические темы и документирования работы)
  • Опыт промышленной разработки больших и сложных приложений на языках C/C++ от 3-5 лет
  • • Владение основными средствами разработки, контроля версий (git + pull requests), issue-tracking, continuous integration, continuous delivery, рефакторинга и контроля качества кода
  • • Умение разобраться в чужой архитектуре и чужом коде и способность развивать и улучшать существующий код
  • • Опыт системной разработки bare-metal и/или RTOS (RTEMS, FreeRTOS)
  • • Опыт разработки для микроконтроллеров и/или FPGA
  • • Программирование по прерываниям, понимание организации многозадачности в микроконтроллерах и RTOS, понимание работы кэшей
  • • Умение читать схемы
  • • Опыт работы с осциллографом
  • • Опыт использования аппаратных средств отладки (JTAG)  

Дополнительные (желательные) требования:

  • • Представление о спутниковой навигации
  • • Опыт прикладной разработки для RTOS систем и желание ей заниматься в дополненные к системным задачам в периодах между запусками новых версий ASIC
  • • Знание основных принципов построения архитектуры (coupling vs cohesion, композиция, наследование), знание принципов объектно-ориентированного программирования (SOLID), знание шаблонов проектирования
  • • Опыт оптимизации кода по производительности и памяти, опыт анализа проблем в работе ПО на встроенных системах
  • • Опыт разработки API c документацией
  • • Опыт программирования для Sparc
  • • Опыт разработки под RTEMS
  • • Опыт разработки драйверов для контроллеров
  • • Опыт программирования RTC
  • • Опыт работы с SPI, i2c
  • • Опыт работы с UART
  • • Опыт работы с OpenAMP, mailbox
  • • Знание особенностей UDP, TCP/IP, FTP
  • • Опыт программирования протоколов передачи
  • • Опыт работы с CAN
  • • Знакомство с HDL, опыт программирования FPGA
  • • Знакомство с программированием DSP (Blackfin, CEVA)
  • • Опыт использования автоматического unit тестирования
  • • Опыт использования статических анализаторов
  • • Знание cmake
  • • Глубокое знание языка С++, включая шаблоны С++
  • • Опыт работы по стандарту Functional Safety (ISO 26262)
  • • Какой-нибудь опыт разработки для Linux

Сотрудник должен иметь возможность и желание приезжать в офис, так как иногда приходится работать с оборудованием.

Работа после испытательного срока сейчас разрешена гибридная, но желательно регулярно появляться в офисе, хотя бы 2 дня в неделю.

Должностные обязанности:

  • • Работа в команде
  • • Анализ исходных требований, уточнение поставленных задач, разработка оптимальных решений, оценка трудоемкости
  • • Разработка внутренней структуры ПО, поддержка существующего кода, добавление новой функциональности
  • • Системная разработка под архитектуру Sparc LEON как bare-metal, так и для операционной системы RTEMS 5 для собственного ASIC компании
  • • Развитие загрузчика u-boot с поддержкой файловых систем для загрузки образов и с возможностью обновлений прошивки по разным интерфейсам
  • • Доработка существующих и написание новых драйверов для контроллеров таких как NAND, SD, CAN, Ethernet, USB
  • • Разработка bare-metal тестовых процедур дня настройки DDR контроллера и тестирования HW подсистем
  • • Поддержка подсистемы обмена данными между LEON и ARM посредством OpenAMP
  • • Развитие и документирование API для использования другими программистами для управления устройствами по шинам SPI, i2c
  • • Диагностика аппаратных проблем в сотрудничестве с разработчиками ASIC и разработчиками других подсистем
  • • Диагностика ошибок исполнения как с использованием stack trace так и аппаратных средств отладки

ОПИСАНИЕ ПРОЕКТА

Это коммерческий проект ПО для своих GNSS приемников, у которого было уже много релизов для пользователей.

 Помимо обычного развития ПО (исправление дефектов, добавление новой функциональности) также, в силу специфики Embedded регулярно нашим программистам приходится «переезжать» на новые аппаратные платформы, что приводит к тому, что большой объем аппаратно-зависимого кода приходится создавать с нуля. Основная часть кода просто развивается, это довольно крупный проект, десятки мегабайт кода.

Мы все еще находимся в процессе освоения очередной новой аппаратной платформы, потом будет несколько лет развития на ее основе пока наши HW разработчики будут проектировать следующий ASIC.

Наши программисты начинают осваивать новые ASIC на ранних этапах, обычно с использованием прототипов на основе Xilinx.

Разработка ведется на C++ (gcc9) под ОС «rtems 5». В процессе работы также требуется сотрудничество с командой разработчиков Линукс на уровне интерфейсов, для этого знание разработки под Линукс необязательно.

В данный момент у нас есть как задачи для работы с hw (микроконтроллеры и другая периферия, подключенная по SPI, i2c), так и более прикладные задачи, требующие знания С++ выше среднего. Дефицит ресурсов по прикладным задачам у нас выше, поэтому скорее мы хотели бы видеть программиста с хорошим знанием С++, не боящегося разработки для RTOS. С другой стороны, хорошего системного программиста мы возьмем с удовольствием.

У нас хороший процесс разработки, есть большие инвестиции в автоматическое тестирование, ежедневные сборки, continuous integration, куплены инструменты статического анализа кода.

Дополнительные инструкции

Место работы: м. Павелецкая. После испытательного срока возможен гибрид.