Описание вакансии
Задачи:
— Описывать архитектуру и компоненты платформы GitFlame, включая диаграммы C4 (контекст, контейнеры, компоненты), потоки данных и последовательности.
— Вести модель данных с ER-диаграммами по доменам (пользователи и вход, организации и роли, репозитории, issues и PR, CI/CD, пакеты, интеграции), описывая назначение таблиц и полей.
— Готовить карты миграции, определяя, что переносится через API, что требует скрипта-преобразователя или серверного кода, а что теряется или уходит в архив.
— Составлять таблицы соответствий для маппинга кастомных ролей и прав на стандартные уровни доступа, видимость, статусы и типы разделов.
— Писать спецификации REST и gRPC API, контракты событий Kafka и RabbitMQ, а также требования к вебхукам.
— Формулировать требования к функциям, отсутствующим у целевой платформы, и оценивать необходимые доработки.
— Согласовывать архитектурные и миграционные решения с командами смежных продуктов, DevOps и владельцами данных.
— Проверять данные на продакшене с помощью SQL-запросов, анализируя объёмы, аномалии, «мёртвые» таблицы и происхождение данных.
— Участвовать в формировании требований к отказоустойчивости и Disaster Recovery, определять RPO и RTO, прорабатывать сценарии отказа.
Требования:
— Опыт коммерческой разработки на Go от 5 лет, включая работу с горутинами и каналами, context, профилирование и управление памятью.
— Уверенное владение PostgreSQL: проектирование схем, индексы, транзакции, миграции, разбор планов запросов.
— Глубокое понимание внутреннего устройства Git: объекты, refs, packfiles, hooks, протоколы HTTP и SSH.
— Опыт работы с gRPC и Protobuf, проектирование REST API.
— Опыт работы с брокерами сообщений Kafka или RabbitMQ и понимание паттерна outbox.
— Владение Docker и базовыми знаниями Kubernetes, уверенное знание Linux.
— Понимание принципов аутентификации и авторизации (OAuth2/OIDC, токены, RBAC).
Будет плюсом:
— Опыт разработки или эксплуатации GitLab, Gitea/Forgejo, Gitaly и Praefect, а также контрибьюты в эти проекты.
— Опыт проведения миграций больших объёмов данных между системами без простоя.
— Знание ClickHouse и S3-совместимых хранилищ (MinIO).
— Знание Ruby и Rails на уровне чтения кода.
— Опыт работы с CI-системами изнутри (GitLab CI, Jenkins, Tekton, Drone, Woodpecker).
— Понимание принципов работы распределённых систем: консенсус, репликация, отказоустойчивость, Disaster Recovery.
— Опыт работы с HashiCorp Vault и Keycloak.
Условия:
— Возможность удалённой работы или гибридного графика с офисом в Москве (БЦ Академик, Проспект Вернадского, 41) или в других городах с офисами Ростелеком ИТ.
— Полностью официальная "белая" заработная плата, включающая оклад и квартальную премию.
— "Кафетерий льгот" с выбором категорий: ДМС или компенсация медицинских услуг по чекам, компенсация затрат на спорт, изучение иностранных языков, проезд, дополнительные выплаты ко дню рождения, онлайн-обучение и другие.
— Компенсация мобильной связи.
— Гибкое начало рабочего дня, позволяющее подстраивать график под личные нужды и работу с командой.
— Возможность профессионального развития через оплачиваемые тренинги, обучение и посещение конференций.