Основные задачи
  • Разрабатывать сетевые сервисы на Python и Golang, такие как DNS-as-a-service, высокопроизводительные балансировщики и др.
  • Обновлять сетевые компоненты Openstack (octavia, neutron), писать патчи, фиксить баги в upstream
  • Ревьювить код, писать unit и функциональные тесты
  • Проводить исследования, проектировать архитектуру новых компонентов
Мы ожидаем
  • Хорошее знание Python (Flask, SqlAlchemy, Сelery, Oslo, Taskflow) и другими, специфичными для OpenStack
  • Опыт работы как с небольшими микросервисами, так и с масштабными монолитными проектами
  • Знание сетевых технологий, их возможностей и ограничений: понимать отличие VLAN от VXLAN, как работает маршрутизация трафика, что такое BGP, умение снять tcpdump и разобраться в нём
  • Опыт работы с MySQL/PostgreSQL/ClickHouse, RabbitMQ, Redis
  • Опыт проектирования API и архитектуры приложения, в том числе микросервисной архитектуры
  • Опыт работы с ОС семейства Linux, то есть для вас не должно быть проблемой: написать bash скрипт, "погрепать" логи, выйти из Vim, настроить IP адреса и сетевые интерфейсы
  • Опыт работы и понимание принципов CI/CD и IaC: у нас используется GitlabCI, Puppet, Jenkins
  • Опыт работы с Docker и Kubernetes: мы активно используем эти технологии на всех этапах разработки и внедрения наших систем, так что с ними вы столкнетесь в первые же дни
Будет плюсом
  • Опыт разработки на Golang
  • Опыт работы с OpenStack (другие облака) минимум на уровне пользователя, а лучше как разработчик/администратор
  • Знания сетевых технологий облаков: оверлейные сети, плавающие адреса, security groups, использование NAT, OpenFlow, Open vSwitch, OVSDB, балансировка трафика
  • Практический опыт работы с сетевым оборудованием
  • Навыки автоматизации управления сетевым оборудованием (Netconf, SSH, OVSDB)