Задачи:
- Разработка системного ПО среде Linux: библиотека для работы с устройствами Линукс и написание простейших драйверов устройств;
- Поддержка разработки библиотеки на Python, обеспечивающей унифицированный доступ к Linux-устройствам;
- Поддержка разработки драйверов на С для периферийных устройств, специфичных для сложноустроенных сетевых устройств (EPLD, CPLD, мультиплексоры I2C, EEPROM периферийных устройств);
- Разработка и написание тестов, подтверждающих ожидаемое поведение компонентов ПО, описанных выше;
- Исправление ошибок (багов) и улучшение производительности системы;
- Взаимодействие с разработчиками других блоков, например, Control Plane и Data Plane, QA.
Требования:
- Опыт программирования на Python;
- Опыт программирования на C/C++ (на уровне, позволяющем адаптировать код имеющихся драйверов под новые платформы);
- Опыт программирования в среде Linux;
- Знание операционных систем Linux на уровне понимания архитектуры данного семейства ОС, способности заглянуть в код, например ядра Linux, когда необходимо улучшить свое понимание устройства какого-то смежного компонента;
- Понимание принципов построения сетевых инфраструктур и функционирования использующихся в них протоколов (Ethernet, IP).
Будет плюсом:
- Понимание работы шин I2C, SPI, USB, PCIe;
- Понимание спецификаций SFF (SFF-8472, SFF-8636 и пр.), CMIS (Common Management Interface Specification);
- Умение писать скрипты в shell (sh, bash, zsh и т.п);
- Опыт работы с отладчиками для Python и C;
- Опыт сборки ПО, знание make, сборочной системы ядра (Kbuild);
- Понимание современного устройства процесса разработки ПО:
• Работа с кодом в системе SCM (Git, GitLab);
• Работа с системами сборки autoconf, automake, make;
• Применение подходов DevOps и CI/CD;
• Работа с задачами в трекере (Jira и пр.), проектная работа Agile Scrum.
Условия:
- 5/2, удаленный формат работы;
- Официальное трудоустройство (белая заработная плата, оплачиваемые отпуска, больничные);
- После прохождения испытательного срока ДМС.