Golang разработчик Senior (SIP/RTP)
Описание
Golang разработчик Senior
Ставка: 2000, с НДС
Локация: РФ
Гражданство: РФ
Длительность проекта: до 31.12.2026 (с пролонгацией)
Обязательные требования
- Сильный Go: идиомы, packages, interfaces, error handling;
- Опыт в телекоме; - Глубокая concurrency: goroutines, channels, context, mutex/atomic, race и leaks;
- Сетевой I/O: TCP/UDP, таймауты, долгоживущие сессии, graceful shutdown; - gRPC (в т.ч. streaming);
- Тесты: unit/integration, понимание race detector;
- Observability: метрики, логи, базовый tracing; pprof;
- Docker, CI, code review;
- SIP: диалоги, транзакции, provisional responses, CANCEL, re-INVITE/UPDATE;
- SDP и согласование кодеков;
- RTP/RTCP, понимание real-time media;
- B2BUA/media gateway / SBC / softswitch (хотя бы один из доменов);
- Кодеки: G.711, AMR, EVS - на уровне понимания задачи;
- Опыт поддержки сложных чужих библиотек/форков;
- High-throughput/low-latency сервисы;
- Оптимизация hot path (alloc, pooling);
- CGO/нативные зависимости;
- Опыт Asterisk/Kamailio/SIP/RTP/WebRTC;
- Разбор проблем вроде one-way audio, signaling races.
Задачи на проекте
1. Стандартная библиотека:
- Знание и эффективное использование стандартной библиотеки Golang, включая пакеты для работы с файлами, сетью, консолью и другими аспектами программирования.
2. Структура и организация кода:
- Модули и пакеты: Использование модулей и пакетов для организации кода, обеспечение разделения ответственности;
- Именование: Придерживание стандартов именования переменных, функций и пакетов для улучшения читаемости кода;
- Комментарии: Добавление комментариев, особенно для сложных участков кода, для облегчения понимания и поддержки.
3. Тестирование и качество кода:
- Unit-тесты: Написание unit-тестов для каждой функции и модуля для обеспечения надежности и возвратности изменений;
- Интеграционные тесты: Разработка интеграционных тестов для проверки взаимодействия различных компонентов системы;
- Code linting и форматирование: Использование инструментов для поддержания единого стиля кода, таких как go fmt и go lint.
4. Оптимизация и производительность:
- Эффективное использование ресурсов: Разработчики должны уметь оптимизировать использование памяти, процессора и сети;
- Профилирование: Использование инструментов для профилирования производительности, таких как pprof, для выявления узких мест.
5. Разработка микро сервисов:
- Архитектура микро сервисов: Умение проектировать и реализовывать архитектуру микро сервисов, обеспечивая независимость и масштабируемость;
- Коммуникация между сервисами: Использование REST, gRPC или других методов коммуникации между микро сервисами.
6. Безопасность:
- Проверка входных данных: Обработка входных данных для защиты от атак типа SQL- инъекций, межсайтового скриптинга и других видов атак;
- Безопасное использование сторонних библиотек: Проверка библиотек на наличие уязвимостей перед их использованием в проекте.
7. Инструменты и среды разработки:
- Редакторы кода: Использование удобных редакторов кода, таких как Visual Studio Code, GoLand, или Atom, с расширениями и плагинами для Golang;
- Системы контроля версий: Знание и использование систем контроля версий, таких как Git, для управления изменениями в коде.
8. Обновление и поддержка:
- Обновление технологий: Следование рекомендациям по обновлению Golang и библиотек, чтобы использовать последние улучшения и исправления;
- Документирование: Создание и поддержание документации для проектов, чтобы облегчить понимание и поддержку кода.
9. Командная работа:
- Сотрудничество: Умение работать в команде, обсуждать и решать проблемы, используя совместные усилия;
- Коммуникация: Эффективное использование инструментов коммуникации для обмена информацией внутри команды и с заказчиками.
10. Учет контекста:
- Контекст использования: Умение применять знания и навыки в новых контекстах, учитывая специфику проекта и требования заказчика.
Этапы отбора
1. Рассмотрение КП + резюме
2. Сразу готовы проводить интервью, в случае заинтересованности конечного Заказчика.
Описание проекта и команды
Крупная телеком компания. Требуется сильный Go-разработчик в SIP/RTP media gateway: concurrency, сетевой I/O, gRPC, тесты. Опыт VoIP/телекома (SIP, SDP, RTP) желателен. Минимум: готовность быстро освоить SIP/SDP/RTP, если сильный Go.
Откликнуться на запрос:
По вопросам партнерского сотрудничества: