Группа Компаний Орбита - ведущий разработчик цифровых решений, российская аккредитованная ИТ-компания
Масштабный технологический проект с глубокой экспертизой в цифровизации бизнеса. Ключевые отрасли: государственный сектор, FinTech, HR Tech, коммуникации и медиа, услуги, рынок недвижимости, travel.
Нам доверяют крупнейшие компании РФ, среди них: Т1, ВТБ, Иннотех, Альфа Банк, ОИС и другие.
Более 6 лет мы ведем собственную продуктовую и заказную разработку высокоэффективных цифровых решений.
Ищем сильного Golang-разработчика в команду, которая развивает высоконагруженный сервис в области SIP/RTP и real-time media.
Если у вас сильный Go и хороший опыт backend/network-разработки, но пока нет глубокого опыта с SIP/RTP — это не проблема. Готовы помочь быстро погрузиться в телеком-домен.
Обязанности: - Разрабатывать и развивать сервисы на Go.
- Работать с конкурентными процессами: goroutines, channels, mutex, atomic, context.
- Разрабатывать сервисы с интенсивным сетевым I/O: TCP/UDP, долгоживущие соединения и сессии.
- Реализовывать корректное завершение соединений и graceful shutdown.
- Разрабатывать взаимодействие между сервисами через gRPC, включая streaming.
- Писать unit- и интеграционные тесты.
- Анализировать и устранять проблемы с race conditions, memory leaks и конкурентным доступом.
- Проводить профилирование и оптимизацию производительности с использованием pprof.
- Работать с метриками, логированием и базовым tracing.
- Участвовать в code review и поддерживать качество кодовой базы.
- Работать с Docker и CI/CD.
- Разбираться в сложных сторонних библиотеках и при необходимости поддерживать их форки.
- Участвовать в проектировании и развитии микросервисной архитектуры.
Что важно
Go
- Уверенное знание Golang и стандартной библиотеки.
- Понимание идиоматичного Go.
- Умение работать с packages и interfaces.
- Корректная обработка ошибок.
- Понимание принципов организации и декомпозиции Go-кода.
Concurrency
Глубокое понимание конкурентного программирования:
- goroutines;
- channels;
- context;
- mutex / RWMutex;
- atomic;
- race detector;
- предотвращение goroutine leaks;
- корректная синхронизация и завершение конкурентных процессов.
Сетевое программирование:
- TCP / UDP.
- Сетевые таймауты.
- Долгоживущие соединения и сессии.
- Обработка сетевых ошибок.
- Graceful shutdown.
- Понимание особенностей высоконагруженного сетевого сервиса.
gRPC:
- Практический опыт работы с gRPC.
- Понимание client/server взаимодействия.
- Опыт работы со streaming будет большим преимуществом.
Тестирование:
- Unit-тестирование.
- Интеграционное тестирование.
- Понимание принципов тестирования конкурентного кода.
- Знание и практическое применение Go race detector.
- Использование gofmt и инструментов статического анализа/linting.
Производительность и observability:
- Понимание влияния CPU, памяти и сетевого I/O на производительность.
- Опыт использования pprof.
- Метрики и логирование.
- Базовое понимание distributed tracing.
- Опыт оптимизации high-load / low-latency сервисов будет преимуществом.
Инструменты:
- Docker.
- Git.
- CI/CD.
- Code review.
- Понимание принципов микросервисной архитектуры.
Будет большим плюсом:
Опыт в VoIP / телекоме / real-time communications:
- SIP;
- SDP;
- RTP / RTCP;
- B2BUA;
- Media Gateway;
- SBC;
- Softswitch;
- WebRTC.
Особенно ценен опыт работы с:
- SIP-диалогами и транзакциями;
- provisional responses;
- CANCEL;
- re-INVITE / UPDATE;
- SDP и согласованием кодеков;
- RTP/RTCP и real-time media;
- проблемами one-way audio и signaling races.
Условия: