Обязанности:
Мы команда Go-разработчиков в Yadro Telecom, разрабатываем программно-аппаратные решения для телеком операторов от этапа исследования и прототипирования до вывода в коммерческое использование. Сейчас с нуля ведем разработку системы управления и мониторинга сетевых элементов состоящей из NMS (Network Management System), EMS (Element Management System) и ОАМ (Operations, administration and management) агентов на базовых станциях и элементах опорной сети. Весь разрабатываемый код покрывается unit/функциональные/компонентные тесты и проходит code-review коллегами.
В задачи системы входит настройка, управление сетевыми элементами, сбор различных статистик, ошибок, обновление. Это объемная система, которая будет работать с высокой нагрузкой и взаимодействовать с десятками тысяч базовых станций.
Разработка ведется на Go, используется Docker, Kubernetes. У нас микросервисная архитектура, сервисы взаимодействуют между собой через Message Broker, с сетевыми элементами взаимодействие по стандартизированному REST API, NETCONF. В качестве баз данных работаем с PostgreSQL и Victoria Metrics. Также используем Grafana, Loki, Fluentbit, для tracing — open telemetry, для мониторинга — Prometheus, etcd — key value store.
У нас команды до 10 человек, работаем по SCRUM с 2-х недельными спринтами.
Требования:
- Опыт технического руководства командой разработки включая оценку сложности/трудозатрат, планирование разработки, взаимодействие со смежными командами;
-
Уверенное либо профессиональное владение Go (Golang);
- Знание и опыт работы с микросервисной архитектурой, а также знакомство с протоколами и библиотеками необходимыми для реализации микросервисов на Go;
- Необходимо быть знакомым с классическими алгоритмами и структурами данных;
- Умение тестировать собственный код;
- Опыт написания многопоточных и/или асинхронных программ;
- Знание сетей, базирующихся на TCP/IP;
- Опыт работы со встраиваемым программным обеспечением и системами реального времени;
- Опыт работы с системами версионного контроля (Git, BitBucket) и баг-трекинга (JIRA);
- Важно знать английский на уровне чтения и написания технической документации.