Газпром ИД (ГИД)– технологичная молодая компания в структуре холдинга. В ГИД-Дате мы создаем различные data-продукты: рекомендательные и поисковые системы, сервисы аналитики и визуализации данных и многое другое.
В данный момент мы в поиске Backend разработчика на проект DataNova — ядро экосистемы Газпрома, обеспечивающее сбор, обработку и монетизацию клиентских данных (Единый Профиль, каталог данных, сегментация, ML-витрины). Масштаб — 10+ ТБ прироста в день, тысячи событий в секунду, десятки интеграций с дочерними обществами и внешними партнёрами (ГПБ, Premier, Rutube, МРГ и др.).
Роль разработчика backend golang + java подразумевает разработку микросервисов на golang, написание unit тестов, проведение code review коллег, участие в оценке задач. Вы будете поддерживать в рабочем состоянии или дорабатывать сервисы, написанные на java.
Зона ответственности
Разработка и архитектура
- Проектирование и разработка высоконагруженных микросервисов на Golang (HTTP, gRPC)
- Архитектурное планирование с применением Domain-Driven Design и гексагональной архитектуры
- Проектирование OpenAPI 3.0 и gRPC спецификаций
Legacy поддержка и изучение миграции
- Поддержка микросервисов на Java (Spring Boot 2.7+/3.x)
- Изучение существующих Java-систем и их архитектуры
- Участие в миграции Java-сервисов на Go
- Рефакторинг кода для улучшения читаемости и сопровождаемости
Работа с данными и производительность
- Написание оптимизированных SQL-запросов для PostgreSQL и ClickHouse
- Проектирование миграций БД с учетом zero-downtime deployment
- Оптимизация производительности для обработки больших объемов данных
- Работа с event-driven архитектурой через Apache Kafka
Обеспечение качества и мониторинг
- Написание комплексных unit/integration тестов с покрытием 80%+
- Code review с фокусом на производительность, безопасность, архитектуру
- Настройка observability (метрики, логи, трассировка)
Профессиональное развитие
- Изучение лучших практик и архитектурных подходов
- Участие в technical planning и оценке задач
- Участие в knowledge sharing сессиях
Технологический стек
Основные языки и фреймворки
- Основной стек: Go 1.21+ (generics, slog, новые runtime возможности)
- Legacy поддержка: Java 17+, Spring Boot 3.x
- API Design: OpenAPI 3.0, gRPC/Protocol Buffers
- Тестирование: testify, testcontainers-go, JUnit 5
Данные и потоковая обработка
- Базы данных: PostgreSQL 14+ (JSONB, partitioning), ClickHouse (MergeTree engines)
- Кеширование: Redis 7+ (streams, modules), in-memory caching
- Стриминг: Apache Kafka (exactly-once semantics, Schema Registry)
- Сериализация: Avro, Protocol Buffers
- Хранилища: S3/MinIO, распределенные файловые системы
Инфраструктура и DevOps
- Оркестрация: Kubernetes 1.28+, Helm
- CI/CD: GitLab CI/CD, Werf, ArgoCD
- Мониторинг: Prometheus, Grafana, Tempo (OpenTelemetry)
- Логирование: Loki, структурированное логирование (slog, zap)
- Безопасность: Vault, OAuth2/OIDC, mTLS, gosec
Наши ожидания:
Обязательные навыки:
- Хорошее знание Go 1.18+: основы generics, понимание модулей и workspaces
- Базовое конкурентное программирование: горутины, каналы, основы sync пакета, context
- Понимание проблем concurrency: знание race conditions, deadlocks
- Основы управления памятью: понимание работы с указателями и сборщиком мусора
- HTTP/gRPC сервисы: создание REST API, основы gRPC
- Тестирование: unit тесты, table-driven tests, основы тестирования с testify
Базовые требования:
- Java 8+/11+: основы современного Java, Stream API, понимание Optional
- Spring Boot 2.x+: понимание основ автоконфигурации, dependency injection
- Чтение кода: умение разбираться в существующем коде, базовый рефакторинг
Базы данных и хранилища
PostgreSQL:
- Базовый SQL: написание запросов средней сложности, понимание JOIN
- Основы оптимизации: понимание индексов, базовое использование EXPLAIN
- PostgreSQL особенности: базовая работа с JSONB, arrays
ClickHouse:
- Аналитические запросы: понимание column-oriented баз данных
- Основы работы: простые запросы агрегации, GROUP BY
- Изучение MergeTree: понимание принципов работы с большими данными
Apache Kafka:
- Базовые концепции: producers/consumers, topics, partitions
- Простая обработка: чтение и запись сообщений
Архитектурные компетенции
Domain-Driven Design:
- Базовое понимание: bounded contexts, основы разделения на слои
- Готовность изучать: агрегаты, доменные сервисы
- Практическое применение: разделение domain/application/infrastructure слоев
Будет плюсом:
- Опыт работы с Tarantool DB
- Наличие своих публичных git репозиториев или участие в open source проектах
- Опыт сборки и запуска docker контейнеров
- Понимание принципов Kubernetes
- Понимание принципов giltab CI/CD
Условия:
- Формат работы - удаленка или гибридный график. Офис находится в Москве, Ленинградский пр-кт 72 к3, БЦ «Алкон».
- Зарплата по рынку + квартальные премии – обсуждаются индивидуально.
- Команда высокого уровня, доступ к уникальным сервисам Газпрома и партнёров.