
Bell Integrator
Инженер-программист C++/Linux/Embedded
- Linux
- C++
- REST API
- Английский — B2 — Средне-продвинутый
Сейчас мы ищем С++ разработчика для задач международной компании.
ОПИСАНИЕ ПРОЕКТА
- Разработка и поддержка встроенной платформы на базе Linux и сопутствующих сервисов для устройств компании
- Разработка и поддержка сервисов (приложений) для встроенной платформы, в частности, для беспроводной связи, работы в сети, файловых систем и регистрации сырых данных GNSS, API управления устройствами (командный интерфейс), интеграция UHF/FH радио, поддержка шины CAN и многое другое.
- Анализ требований, уточнение поставленных задач, оценка усилий, разработка оптимальных решений
- Создание и разработка образов системы с использованием yocto, конфигурирование дерева устройств
- Поддержка инструментария, обновление библиотек и поддержка непрерывной интеграции
- Разработка подсистемы обновления прошивки, включая OTA.
- Диагностика проблем в сотрудничестве с инженерами HW, инженерами-производителями, командами тестирования и поддержки продукции.
- Поддержка команд по производству и тестированию продукции.
- Работа с разработчиками Linux-систем и драйверов для предоставления конечным пользователям API и сервисов для периферии в соответствии с техническими требованиями.
ТРЕБОВАНИЯ К КАНДИДАТУ
- Понимание спутниковой навигации или автоматизации строительной техники
- Знание ключевых принципов проектирования архитектуры (сцепление против когезии, композиция, наследование), а также понимание принципов объектно-ориентированного программирования (SOLID).
- Всестороннее понимание методов и теорий разработки объектно-ориентированных и сервис-ориентированных приложений, сетевых протоколов и принципов.
- Опыт работы в команде с низкоуровневыми разработчиками, разработчиками драйверов, разработчиками RTOS и проектировщиками схем.
- Опыт низкоуровневой разработки для Linux (модули ядра и драйверы).
- Опыт конфигурирования Linux под требования реального времени.
- Опыт сборки встраиваемых систем linux (yocto, buildroot)
- Опыт работы с функциями загрузчика (u-boot).
- Опыт работы с сетевыми протоколами и функциями, включая REST, HTTPS, UDP, TCP, FTP, SNMP и IPv6.
- Опыт работы с pppd, сотовыми модемами 4G, eSIM/LPA.
- Опыт работы с Bluetooth/BLE.
- Опыт внедрения или разработки протоколов передачи данных.
- Опыт разработки API с документацией.
- Опыт оптимизации кода и устранения проблем с программным обеспечением во встраиваемых системах (отладка, профилирование, обнаружение утечек памяти).
Дополнительные (желательные) требования
- Высшее образование в области программного обеспечения, электроники, компьютерной инженерии или смежных областях
- Уровень английского языка выше среднего
- Минимум три года опыта разработки программного обеспечения
- Опыт разработки приложений для Embedded Linux
- Опыт использования процессов и инструментов разработки программного обеспечения (контроль версий, отслеживание проблем, непрерывная интеграция, рефакторинг и контроль качества кода)
- Продвинутые знания C++, включая шаблоны C++ и стандартную библиотеку C++.
- Опыт разработки многопоточных приложений.
- Знание Python
- Знание cmake.
- Знание процессов разработки программного обеспечения
ОБЯЗАННОСТИ КАНДИДАТА
- Разработка и поддержка встроенной платформы на базе Linux и сопутствующих сервисов для устройств компании
- Разработка и поддержка сервисов (приложений) для встроенной платформы, в частности, для беспроводной связи, работы в сети, файловых систем и регистрации сырых данных GNSS, API управления устройствами (командный интерфейс), интеграция UHF/FH радио, поддержка шины CAN и многое другое.
- Анализ требований, уточнение поставленных задач, оценка усилий, разработка оптимальных решений
- Создание и разработка образов системы с использованием yocto, конфигурирование дерева устройств
- Поддержка инструментария, обновление библиотек и поддержка непрерывной интеграции
- Разработка подсистемы обновления прошивки, включая OTA.
- Диагностика проблем в сотрудничестве с инженерами HW, инженерами-производителями, командами тестирования и поддержки продукции.
- Поддержка команд по производству и тестированию продукции.
- Работа с разработчиками Linux-систем и драйверов для предоставления конечным пользователям API и сервисов для периферии в соответствии с техническими требованиями.
Условия:
- Возможность профессионального и карьерного роста в компании, возможность поучаствовать в разных проектах
- Опыт работы в распределенной команде профессионалов;
- Уровень заработной платы обсуждается индивидуально;
- Релокация в Италию ( помощь при переезде предоставляем- плата билетов, визу