- необходимо глубокое знание языков программирования С/С++; - необходимо умение пользоваться, поддерживать и писать самостоятельно несложные программы на python, shell-скрипты; - необходимо владение инструментарием shell; - обязательно наличие умения работать с системами контроля версий (git, svn), навыка командной разработки программ с использованием систем контроля версий; - необходимо умение работать с инструментами GNU toolchain, в частности с make (писать/поддерживать/использовать makefile), GCC; - программист должен быть морально готов к организации разработки некоторых программных продуктов в соответствии с требованиями, применяемым к safety-critical applications, что включает в себя полное документирование, обязательное тестирование всех функций и отказов (включая отказы ОС) а также, в некоторых случаях, мультиверсионность; - программист должен осознавать пользу полного документирования программных интерфейсов и, в некоторых случаях, законов функционирования составных частей программы, должен быть готов организовывать, принимать участие и контролировать достаточность такого документирования в LaTex; - программист должен знать, понимать и уметь использовать способы межпроцессного взаимодействия и взаимодействия между вычислительными машинами; - программист должен понимать и строго соблюдать требования по написанию thread-safe кода; - очень желательно понимание специфики построения систем реального времени на ОС Linux (основная часть ПО будет проектироваться с учетом требования на время отклика не более 0, 1 с) - желательно понимание особенностей программирования встраиваемых систем (на базе микроконтроллера без наличия устройства динамического выделения памяти); - желательно понимание особенностей работы стандартных интерфейсов (RS232, RS485, CAN, Ethernet); - желательно базовое понимание принципов работы систем автоматического регулирования, в частности ПИД-регуляторов; -хорошо, если у соискателя есть умение пилотировать летательные аппараты- в роли |