Необходимые знания и навыки:
- Опыт программирования на Python
- Операционные системы Linux - на уровне понимания архитектуры данного семейства ОС, способности заглянуть в код, например ядра Linux, когда необходимо улучшить свое понимание устройства какого-то смежного компонента
- Принципы построения сетевых инфраструктур и функционирования использующихся в них протоколах (Ethernet, IP, control plane протоколы BGP, OSPF)
- Желателен опыт работы с CLI сетевых устройств
Как плюс:
- опыт разработки и сопровождения решений с высокими требованиями к надежности
- опыт разработки сервисов (daemons) в среде Linux
- работа с кодом в системе SCM (Git, GitLab)
- применение подходов DevOps и CI/CD
Задачи:
- Проектировать и воплощать в коде функции сетевой ОС, относящиеся к Control Plane, в виде вспомогательных сервисов, такие как:
синхронизация различных состояний между сетевыми устройствами (например MC-LAG)
реализация API и CLI для доступа к отдельным сетевым функциям устройства (REST API, Netconf, gNMI)
- Исправлять ошибки (баги) и улучшать производительность системы
- Взаимодействовать с разработчиками других блоков, например, Data Plane
- Следить за развитием и тенденциями отрасли с целью реализации в нашем продукте функций, отвечающих запросам рынка
- Принимать участие в планировании развития итогового продукта (roadmap)
Организационные детали и условия:
Мы стремимся привлечь коллег, которые получают такое же, как и мы искреннее удовольствие от изучения устройства сложных систем, микроэлектроники, от разработки в Linux-среде и от создания достойного продукта, которым мы будем гордиться перед заказчиками и внутри профессионального сообщества.
Мы приветствуем те режимы работы, которые делают наших коллег продуктивными:
если любите разделять рабочее и домашнее пространства — будем рады видеть вас в нашем офисе - м. Ленинский проспект/Площадь Гагарина
если вам лучше работается удаленно — нас это устраивает, главное — результат
Задачи:
— Разработка и развитие системы автоматизации комплексного функционального и нагрузочного тестирования сетевой операционной системы, включая оркестратор и сценарии для него;
— Создание и развитие автотестов для системы;
— Описание сетевых топологий, воспроизводящих типичные конфигурации заказчиков, в виде программного кода;
— Участие в проектировании и написании CI/CD пайплайнов;
— Взаимодействие с разработчиками для реализации сценариев тестирования и формирования задач по устранению неисправностей.
Требования:
— Знание методик тестирования ПО и сетевых решений (smoke тесты, юнит-тесты и др.);
— Знание протоколов динамической маршрутизации (BGP, OSPF);
— Уверенная работа в Linux;
— Понимание сетей на базе Ethernet и IP;
— Умение автоматизировать задачи на Python и Bash, включая написание скриптов и разбор сложного кода;
— Опыт работы с виртуализацией QEMU-KVM и контейнерами Docker;
— Опыт эксплуатации и диагностики сетевых инфраструктур на базе Ethernet и IP.
Будет плюсом:
— Опыт эксплуатации Ethernet и IP-сетей;
— Опыт написания автотестов и работы с тестировочными фреймворками;
— Опыт работы с веб-фреймворками Django, Flask или эквивалентами;
— Опыт работы с базами данных для создания микросервисов;
— Опыт работы с CI/CD средами, особенно Jenkins;
— Опыт эксплуатации виртуализированных облачных инфраструктур в Linux;
— Опыт работы с контейнеризированными сервисами;
— Опыт работы с Jenkins Pipeline и Apache Groovy DSL;
— Понимание процесса разработки ПО, работы с SCM (Git, GitLab), DevOps и CI/CD;
— Опыт работы с трекерами задач (Jira) и проектной работой по Agile Scrum;
— Английский язык для чтения технической документации.
Условия:
— Формат работы: удаленный или гибрид;
— Официальное оформление по ТК РФ в аккредитованной ИТ-компании с соответствующими привилегиями для сотрудников.