logo[мetahunt]
> DOU

Embedded Engineer

FOP Lavriv
format:Officetype:Contract
apache sparkcc++arm cortex-mdmaspii2cuartcan
iso 26262
experience2+ years
domainDefTech
locationIvano-Frankivsk, Ukraine
> full description

Ви станете основою команди розробки бортового програмного забезпечення (Flight Software), відповідальним за створення flight-critical коду (DAL A/B за DO-178C). Ваша роль — розробка ядра безпеки системи: контурів автоматичного керування, систем обробки критичних відмов та драйверів для високонадійних апаратних вузлів.

Ключові обов’язки та задачі:

1. Розробка Flight-Critical коду та сенсорна фузія (Ada/SPARK):

  • Написання детермінованого коду для контурів керування (PID-регулятори, комплементарні фільтри, фільтри Калмана) мовою Ada.
  • Математичне моделювання та реалізація обчислень просторової орієнтації об’єкта (лінійна алгебра, кватерніони) з використанням фіксованої крапки (fixed-point) або строго типізованої плаваючої крапки.
  • Обробка та сенсорна фузія даних з критичної бортової периферії: IMU, GPS, барометрів, магнітометрів.
  • Розробка логіки ізоляції та обробки критичних апаратних відмов (Fail-Safe / Fail-Operational режими).

2. Формальна верифікація та контрактне програмування (SPARK):

  • Застосування SPARK для формального доведення коректності коду.
  • Проектування архітектури за принципами контрактного програмування: опис перед- та післяумов (pre/postconditions), а також інваріантів типів (type invariants).
  • Математичне доведення відсутності помилок часу виконання (Division by zero, Buffer Overflow, Array Index out of bounds) за допомогою ста can-аналізатора GNATprove.

3. Архітектура реального часу та обмежені профілі рантайму:

  • Робота з детермінованими профілями рантайму (зокрема Ravenscar або light-tasking).
  • Налаштування та оптимізація планувальників завдань, глибоке розуміння того, чому обмеження динамічної пам’яті та складності тасок необхідні для передбачуваного аналізу планувальника (WCET / worst-case execution time).

4. Низькорівнева розробка та інструментарій (Toolchain):

  • Розробка низькорівневих драйверів для апаратних вузлів через інтерфейси SPI, I2C, UART, CAN / CAN FD з використанням засобів специфікації представлення даних в Ada (Representation clauses) для точного мапінгу регістрів.
  • Робота з екосистемою: компилятор GNAT (arm-eabi), менеджер пакетів Alire (gnat_arm_elf), система збірки gprbuild та використання/адаптація компонентів Ada Drivers Library.

Профіль ідеального кандидата:

  • Досвід розробки на Ada/SPARK від 2 років АБО сильний C/C++ Embedded інженер (3+ роки) з вираженим формально-математичним мисленням, чистим кодом (розумінням MISRA) та експертною готовністю повністю перейти на Ada/SPARK.
  • Глибоке розуміння вбудованих систем: архітектура ARM Cortex-M/R, робота з регістрами, DMA, перериваннями та таймерами.
  • Знання вищої математики (особливо матричного числення та теорії керування). ● Буде вагомим плюсом: Знайомство зі стандартами функціональної безпеки та процесами сертифікації (DO-178C, EN 50128 або ISO 26262), досвід проходження аудитів ПЗ.
Відгукнутись на вакансію