Разработчик 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 и сервисов для периферии в соответствии с техническими требованиями.
Условия работы
- Возможность профессионального и карьерного роста в компании, возможность поучаствовать в разных проектах;
- Опыт работы в распределенной команде профессионалов;
- Уровень заработной платы обсуждается индивидуально
- Формат работы: Офис Италия