Москва
Метро: Библиотека им.ЛенинаPlayerok — это маркетплейс цифровых товаров и услуг. Мы соединяем покупателей и продавцов, берём на себя безопасность сделки и запускаем собственные продукты. Строим масштабный бизнес на быстрорастущем рынке, на стыке гейминга, финтеха и e-commerce.
Инфраструктуре несколько лет, она под нагрузкой, есть технический долг — это не Greenfield. Мы ищем инженера (middle/senior) с опытом коммерческой эксплуатации от 3 лет, который умеет принимать самостоятельные решения и готов отвечать за них в проде.
Воспроизводимая инфраструктура как код
Всё, что касается окружений, описываем в коде (Terraform, Ansible, YAML-спеки). Твоя задача — довести контуры до состояния, когда любое окружение можно поднять с нуля одной командой.
Работа с Terraform
Управление состоянием, импорт созданных вручную ресурсов, перемещение ресурсов без пересоздания (moved), использование for_each вместо копипаста модулей. У нас версия Terraform 1.5+.
Фабрика стендов
Описания стендов в YAML → автоматическое развёртывание ресурсов в облаке. Валидация описаний до применения, синхронизация стендов с продакшеном.
Второе облако (Selectel)
Там находятся внутренние сервисы компании (SSO, VPN-оверлей, бастион-хосты, dev/QA-стенды, раннеры). Нужно будет настраивать сеть, доступы и всю сопутствующую инфраструктуру.
Управление Ansible
У нас парк из нескольких десятков ролей (PostgreSQL, Kafka, Elasticsearch, ClickHouse, Sentry, VictoriaMetrics, GitLab, Netbird, Teleport и др.). Ожидаем, что ты умеешь писать идемпотентные роли, понимаешь приоритеты переменных, используешь --check и --diff, не злоупотребляешь shell без проверки изменений.
Развитие внутреннего движка раскатки на Python
Это наш самописный инструмент, который оркестрирует Terraform и Ansible через Python API (ansible-runner, ansible-vault). Нужно будет вникать в существующий код, дописывать новые фичи, поддерживать тесты и CI.
Аналитическое хранилище и CDC-потоки
Принять под эксплуатацию аналитику, описать её кодом, настроить доступы, бэкапы и оркестрацию.
Бэкапы и восстановление
Проектирование стратегии бэкапов с чёткими RPO/RTO. Главный принцип: бэкап считается рабочим только после успешного восстановления и проверки данных.
Учёт затрат в облаках
Настроить тегирование, раскладку расходов по проектам и владельцам, чтобы на любой вопрос «сколько стоит этот проект» был готовый ответ.
Эксплуатационная рутина
Ротация логов, мониторинг дисков, репликационных лагов, блокировок БД, рост баз — постоянный контроль состояния.
Доступы и VPN
Выдача и отзыв доступа к внутренним ресурсам по процедуре.
Инфраструктурный код в монорепозитории
Централизованное хранение секретов — нужно будет спроектировать и поддерживать.
Опыт работы с Terraform на уровне состояния — понимаешь, чем import отличается от пересоздания, зачем нужен moved, как работает for_each при смене ключа, что такое ForceNew в плане. Умеешь валидировать сложные фабрики на fileset/try.
Глубокое знание Ansible — приоритеты переменных, работа с --check/--diff, использование --limit для страховки. Отличаешь идемпотентный модуль от небезопасного shell. Быстро разбираешься в чужих ролях и видишь, что сломается на втором прогоне.
Python — обязательный навык. Наш движок раскатки написан на Python, поэтому нужна способность вникать в чужой код, разбираться в документации, писать свои части с тестами и проходить ревью.
Linux и сети — уверенное владение ss, strace, tcpdump, dig, systemd, работа с лимитами, дисками, маршрутами. Понимаешь разницу между drop и reject в iptables и как это влияет на диагностику.
PostgreSQL как эксплуатант — знаешь про блокировки, очередь ожидания, lock_timeout перед DDL, последствия упавшего CONCURRENTLY, цену массовых UPDATE без батчей. Умеешь оценивать миграции (например, CREATE INDEX без CONCURRENTLY на горячей таблице) и проверять их до прода.
Kubernetes и Helm — не в роли администратора кластеров, но понимаешь, как работают чарты, умеешь рендерить helm template, разбираешься в каскадах values по окружениям.
Kafka и Redis — понимаешь цену ребаланса, лаг, идемпотентность обработки, умеешь читать сообщения из топика вручную. Знаешь про проблемы с горячими ключами и поведение клиента Redis при недоступности.
TypeScript — уметь читать и дебажить, чтобы ревьюить миграции или разбирать инциденты в коде разработки (писать самому не нужно).
Наблюдаемость и бэкапы — работа с метриками, логами, трейсами, уверенное составление PromQL, проектирование алертов с действиями. Бэкапы — в терминах RPO/RTO и проверенного восстановления.
Секреты — работа с ansible-vault и шифрованными значениями, ротация, что делать при утечке в git.
Самоорганизация и коммуникация — умеешь сообщать о проблемах и срыве сроков заранее, не ждёшь подсказки на каждом шагу, после ошибки участвуешь в разборе, не исчезаешь. Инциденты случаются, мы разбираем их вместе.
Опыт с ClickHouse (бэкапы, Keeper, TTL, обновления между мажорами).
Работа с аналитическим контуром (Airflow, dbt, CDC, оркестрация).
Умение поднимать окружение с чистого облачного аккаунта целиком и доказывать это учениями.
Опыт учёта облачных расходов (теги, проекты, утилизация).
Знание werf (сборка, рендер, секреты).
Администрирование самохоста GitLab, Sentry, Elasticsearch, Netbird, Teleport или аналогичных решений.
Удаленный формат сотрудничества с редкими встречами в Москве (местонахождение в Москве очень желательно).
300 000 руб — стартовая вилка, итоговая сумма обсуждается по опыту.
Возможность выбрать форму сотрудничества и оплаты (все налоги — наша забота).
Онбординг-квест — не бросим в бой без подготовки, введем в курс дела и подключим к команде.
Занятость 5/2 с 8-часовым рабочим днем.
Команда профи— работаешь с инициативными и увлеченными коллегами.
Пауза на восстановление — «перезагрузиться» можно в оплачиваемом отпуске или на больничном.
Откликайся на вакансию — это первый шаг к тому, чтобы стать частью команды, которая меняет правила игры. Ваш ход! 🎮