Разработчик C++ (Linux/Embedded)

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

Москва, Санкт-Петербург, Болонья (Италия)Полный рабочий день

Компания

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

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

О компании и команде

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

Мы аккредитованная ИТ-компания и являемся частью большой семьи ГК Softline.

Bell Integrator активно реализует проекты по всей России, среди наших заказчиков – крупнейшие системообразующие финансовые, телеком и ритейл компании страны.

Проект: 

 1. Адаптер программного API и аппаратного API. Данная разработка является кроссплатформенной, в частности под Linux и RTOS (FreeRTOS или Zephir). В рамках данного проекта потребуется запуск как существующих реализаций функционала, написанных под другую RTOS (RTEMS), так и написание нового функционала. Данное решение предоставляет базовый GNSS функционал и является основой для всех GNSS приемников, которые разрабатываются в компании.

2. Проект нового геодезического приемника. В рамках данного проекта много задач как прикладного уровня (WEB интерфейс, работа с файлами и пр.), так и системных задач (система обновления, поддержка USB, SD, Cell, WiFi, BT, BLE, UART, поддержка и развитие функциональности загрузчика (UBOOT)). Разработка ведется с использованием Yocto. В качестве одной из подсистем выступает адаптер программного и аппаратного API из п.1.

3. Проект новых OEM GNSS приемников. В основу данного проекта заложен проект адаптера программного и аппаратного API (из п.1), портированного под данную платформу. В рамках данного проекта также много задач как прикладного уровня, так и системных задач (система обновления, поддержка USB, SD, UART, поддержка и развитие функциональности загрузчика (UBOOT)). Разработка ведется с также использованием Yocto.

Ожидания от кандидата

Требования:

  • Высшее образование в области программного обеспечения, электроники, компьютерной инженерии или смежных областях
  • Опыт разработки приложений для Embedded Linux не менее 3х лет
  • Уровень английского языка выше среднего
  • Понимание спутниковой навигации или автоматизации строительной техники
  • Знание ключевых принципов проектирования архитектуры (сцепление против когезии, композиция, наследование), а также понимание принципов объектно-ориентированного программирования (SOLID).
  • Всестороннее понимание методов и теорий разработки объектно-ориентированных и сервис-ориентированных приложений, сетевых протоколов и принципов.
  • Опыт работы в команде с низкоуровневыми разработчиками, разработчиками драйверов, разработчиками RTOS и проектировщиками схем.
  • Опыт низкоуровневой разработки для Linux (модули ядра и драйверы).
  • Опыт конфигурирования Linux под требования реального времени.
  • Опыт сборки встраиваемых систем linux (yocto, buildroot)
  • Опыт работы с функциями загрузчика (u-boot).
  • Опыт работы с сетевыми протоколами и функциями, включая REST, HTTPS, UDP, TCP, FTP, SNMP и IPv6.
  • Опыт работы с pppd, сотовыми модемами 4G, eSIM/LPA.
  • Опыт работы с Bluetooth/BLE.
  • Опыт внедрения или разработки протоколов передачи данных.
  • Опыт разработки API с документацией.
  • Опыт оптимизации кода и устранения проблем с программным обеспечением во встраиваемых системах (отладка, профилирование, обнаружение утечек памяти).

Желательно: 

  • Опыт использования процессов и инструментов разработки программного обеспечения (контроль версий, отслеживание проблем, непрерывная интеграция, рефакторинг и контроль качества кода)
  • Продвинутые знания C++, включая шаблоны C++ и стандартную библиотеку C++.
  • Опыт разработки многопоточных приложений.
  • Знание Python
  • Знание cmake.
  • Знание процессов разработки программного обеспечения 

Обязанности: 

  • Разработка и поддержка встроенной платформы на базе Linux и сопутствующих сервисов для устройств компании
  • Разработка и поддержка сервисов (приложений) для встроенной платформы, в частности, для беспроводной связи, работы в сети, файловых систем и регистрации сырых данных GNSS, API управления устройствами (командный интерфейс), интеграция UHF/FH радио, поддержка шины CAN и многое другое.
  • Анализ требований, уточнение поставленных задач, оценка усилий, разработка оптимальных решений 
  • Создание и разработка образов системы с использованием yocto, конфигурирование дерева устройств
  • Поддержка инструментария, обновление библиотек и поддержка непрерывной интеграции
  • Разработка подсистемы обновления прошивки, включая OTA.
  • Диагностика проблем в сотрудничестве с инженерами HW, инженерами-производителями, командами тестирования и поддержки продукции.
  • Поддержка команд по производству и тестированию продукции.
  • Работа с разработчиками Linux-систем и драйверов для предоставления конечным пользователям API и сервисов для периферии в соответствии с техническими требованиями.

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

  • Возможность профессионального и карьерного роста в компании, возможность поучаствовать в разных проектах;
  • Опыт работы в распределенной команде профессионалов;
  • Уровень заработной платы обсуждается индивидуально
  • Формат работы: Офис Италия