Наша команда создаёт технологический фундамент образовательной платформы и обеспечивает стабильность действующих продуктовых направлений, таких как ШАД, Лицей, Учебник, и другие.
Мы ищем DevOps-инженера, которому интересно строить и развивать сложные отказоустойчивые системы на стыке разных областей. Вы будете создавать и совершенствовать системы, которые служат основой работы Яндекс Образования.
Какие задачи вас ждут:
- Проектировать архитектуру взаимодействия приложений
Образовательные продукты часто состоят из нескольких приложений. Приложения и сами продукты будут эволюционировать и развиваться. Нужно выстроить схему потоков данных так, чтобы работа приложений была быстрой, вычислительноэффективной и при этом устойчивой к отказам. - Разрабатывать компоненты эксплуатационной инфраструктуры и автоматизировать типовые задачи
Образовательные продукты построены поверх базовых технологий Яндекса. Но для решения задач конкретной области этих технологий оказывается недостаточно. Нужно на основе общих потребностей нескольких продуктов спроектировать и реализовать решение, которое закроет эти потребности.
-
Обеспечивать доступность существующих решений, повышать их надёжность и безопасность
Образовательными продуктами пользуются живые люди. При этом сами приложения продолжают развиваться. При активном развитии и изменении программных систем ошибки неизбежны. Наша задача — придумать, как минимизировать влияние ошибок на пользователей. Решение может быть как техническим, так и процессуальным — в виде набора правил и рекомендаций для продуктовых разработчиков. -
Анализировать качество предложенных и существующих решений, находить и устранять слабые места
Мы активно участвуем в процессе архитектурной приёмки. Это процесс анализа качества предлагаемых реализаций. Он нужен, чтобы предотвратить разработку плохо спроектированных приложений и зафиксировать артефакт с описанием проблемы и путей её решения. -
Оценивать потребности в ресурсах, разрабатывать и внедрять мониторинг систем
При активном развитии наших продуктов требуется составлять долгосрочный план потребления вычислительных ресурсов и следить за тем, чтобы они неожиданно не закончились. А если ресурсов оказывается недостаточно — нужно придумать способ сократить потребление без снижения нагрузки и потери качества.
Мы ждем, что вы:
- Администрировали *nix-серверы
- Разбираетесь в архитектуре современных сетевых приложений и понимаете их требования к инфраструктуре
- Понимаете принципы построения распределённых и отказоустойчивых систем
- Понимаете принципы работы интернета и занимались диагностикой сетевых проблем
- Автоматизировали процессы с использованием языков программирования
- Пишете читабельный код, который легко поддерживать, любите и умеете писать тесты
- Работали с системами мониторинга и управления конфигурациями
- Способны объяснять свои решения и договариваться с коллегами
Будет плюсом, если вы:
- Занимались коммерческой разработкой
- Создавали сетевые приложения
- Понимаете принципы работы очередей и распределённых систем
- Понимаете принципы обеспечения отказоустойчивости серверных приложений
- Отлично знаете Python, Go или TypeScript
- Ведёте один или несколько личных проектов или вносили значимый вклад в развитие открытых проектов
- Работали с реляционными и нереляционными базами данных, понимаете разницу между ними и основные принципы их работы