Ведущий Python-разработчик / Архитектор системы единого входа (OpenID Connect, FastAPI)

Издательство «Национальное образование»

Ведущий Python-разработчик / Архитектор системы единого входа (OpenID Connect, FastAPI)

Описание вакансии

О проекте

Издательство «Национальное образование» развивает образовательные сайты: подготовка к ЕГЭ и ОГЭ, педагогический клуб, онлайн-школа, платформа материалов к учебникам. У всех сайтов общий вход — через собственную систему единого входа ЕМАП (сервер авторизации по OpenID Connect: регистрация, вход через VK ID и Яндекс ID, роли и права, организации-школы, админка).

К ЕМАП подключены все продукты, поэтому ошибка в нём останавливает всё. Сейчас систему разрабатывает подрядчик — мы ищем человека, который примет систему, станет её техническим владельцем и будет отвечать за то, как устроен вход и права во всех продуктах.

Нужен не просто разработчик, а инженер с опытом системной архитектуры: разберётся в чужом коде без документации, опишет устройство системы и сам доведёт изменения до прода.

Чем предстоит заниматься

  • Архитектура и анализ: разобрать ЕМАП целиком (протокол входа, выпуск и проверка токенов, ключи подписи, сессии, роли, организации, админка, интеграции с сайтами); поддерживать описание системы в актуальном состоянии; принимать архитектурные решения и согласовывать их с техдиректором; превращать запросы бизнеса в задачи с критериями готовности и оценкой.
  • Разработка: дорабатывать бэкенд на Python (FastAPI, SQLAlchemy async, PostgreSQL), при необходимости — фронтенды входа, ЛК и админки (Vue 3 + TypeScript); подключать новые сайты и сервисы к единому входу; следить за безопасностью (хранение паролей и ключей, защита от подбора, права в админке); писать и поддерживать автотесты (pytest, Playwright, Schemathesis).
  • Эксплуатация: выкладывать версии через GitLab CI вместе с инженерами эксплуатации, проверять подключённые сайты после выкладки; разбирать инциденты по логам и Sentry; следить за нагрузкой в пиковые периоды (начало учебного года, подготовка к экзаменам).
  • Команда и подрядчик: 1–2 месяца работать вместе с подрядчиком, принимать работу по результату и забирать знания и доступы; консультировать бэкенд, фронтенд, онлайн-школу и тестировщиков по вопросам входа и прав; вести документацию в Confluence.

Ожидания на первые 3 месяца

  • 2 недели: поднять ЕМАП локально и на тестовом стенде, получить доступы, разобраться в протоколе, токенах, ролях, организациях и подключении сайтов; начать самостоятельно исправлять текущие ошибки; расставить приоритеты по задачам.
  • 1 месяц: самостоятельно выпускать исправления с проверкой подключённых сайтов и возможностью отката; принимать работу подрядчика по результату, в том числе автотестами; сквозные тесты на основные сценарии при каждой выкладке.
  • 2 месяца: принять самостоятельную поддержку ЕМАП; смена ключей подписи токенов и выкладка новых версий проходят без поломки сайтов; схема входа и порядок подключения нового сайта описаны в Confluence.
  • 3 месяца: довести первую собственную доработку от требований до прода (например, вход сотрудников школ через организацию); завершить документацию и автоматизацию проверок.

Результат принимается не по календарю: изменение подтверждено автотестами и проверкой на стенде, откат проверен. Если срок не выдерживается — нужен конкретный список препятствий и решение по каждому.

Что нужно уметь (обязательно)

  • 5+ лет коммерческой разработки на Python; уверенно FastAPI или другой асинхронный фреймворк, SQLAlchemy.
  • Глубокое понимание OAuth 2.0 и OpenID Connect с серверной стороны: authorization code с PKCE, refresh-токены, JWT, JWK, ротация ключей, logout, consent, scopes. Опыт разработки или доработки сервера авторизации, а не только подключения к готовому.
  • Опыт проектирования систем: уметь описать архитектуру, выбрать решение и объяснить почему именно его.
  • Системный анализ: собрать требования, описать сценарии и критерии готовности, оценить трудоёмкость.
  • Безопасность веб-приложений: OWASP Top 10, хранение паролей и секретов, права доступа.
  • PostgreSQL: запросы, индексы, миграции, разбор медленных запросов.
  • Фронтенд на уровне чтения и правки: Vue 3 или React, TypeScript.
  • Docker, Kubernetes на уровне «собрать, выложить, посмотреть логи», GitLab CI.
  • Умение разбираться в чужом коде без описания и доводить работу до прода.
  • Работа с ИИ-помощниками (Claude Code, Cursor или похожие) как обычная часть процесса.

Будет плюсом

  • Опыт с Keycloak, Ory, Authentik — понимание, чем свой сервер отличается от готового.
  • Вход через VK ID и Яндекс ID.
  • Elasticsearch, Playwright, Sentry.
  • Опыт в продуктах с большим числом пользователей и разными типами (ученики, родители, учителя, школы).
  • Опыт приёмки работ у подрядчиков.

Технологии

Python, FastAPI, SQLAlchemy (async), PostgreSQL, sqitch, authlib, joserfc, Elasticsearch, Vue 3 + TypeScript + Vite, Playwright, Docker, GitLab CI, Sentry.

Условия

  • Удалённо, из любого региона России, полная занятость.
  • Оформление в штат по ТК РФ.
  • Готовы рассмотреть быстрый выход — старт в течение 1–2 недель.
  • Подчинение техническому директору; работа в связке с руководителями групп бэкенда, фронтенда, тестирования и эксплуатации.
  • Задачи и документация — Jira и Confluence, код — GitLab.

Этапы отбора

  1. Разговор с HR.
  2. Техническое интервью с техническим директором: опыт, протоколы входа, архитектура, разбор реальной ситуации.
  3. Практическое задание.

Навыки
  • Python
  • FastAPI
  • Docker
  • SQLAIchemy (async)
  • PostgreSQL
  • sqitch
  • authlib
  • joserfc
  • Elasticsearch
  • Vue 3
  • TypeScript
  • Vite
  • Playwright
  • Gitlab
  • CI
  • Sentry
Посмотреть контакты работодателя

Похожие вакансии

Издательство «Национальное образование»

Ведущий Python/Django-разработчик / Архитектор онлайн-школы на Open edX

Издательство «Национальное образование»

  • Москва

  • до 300000 RUR

Рекомендуем
RWB (Wildberries & Russ)

Python разработчик в WB Chat

RWB (Wildberries & Russ)

  • Москва

  • до 300000 RUR

Рекомендуем
АйТи БАСТИОН

Senior Python Developer

АйТи БАСТИОН

  • Москва

  • до 300000 RUR

Рекомендуем
Р-Фарм
  • Москва

  • до 300000 RUR

МегаФон
  • Москва

  • до 300000 RUR

БАЗИС
  • Москва

  • от 350000 RUR

DIGITCORE
  • Москва

  • от 350000 RUR

Мокка
  • Москва

  • до 300000 RUR

evrone.ru
  • Москва

  • до 300000 RUR

RWB (Wildberries & Russ)
  • Москва

  • до 300000 RUR

evrone.ru
  • Москва

  • до 300000 RUR

Профи.ру
  • Москва

  • до 300000 RUR

GO Digital
  • Иннополис

  • до 350000 RUR

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию