Платформа разработки, валидации, транспорта и развёртывания DWH-объектов между ландшафтами (DEV → TEST → PROD). Целевые СУБД: ADB (Greenplum) и ADQM (ClickHouse). Сейчас в продуктиве — CLI-конвейер Linter → Builder → Deployer. В работе — интегрированный сценарий: Backend (Repository / Transport / Deploy Orchestration / Load / Admin), Execution Service, Deployment Worker, peer Transport API и Web UI поверх существующих CLI. Обязанности: • Разработка и развитие модулей toolchain на Python: mors-linter, mors-builder, mors-deployer (CLI на Typer, packaging через uv/Hatchling). • Доработка и реализация интегрированного сценария на FastAPI: Web API (M-API), модули Repository, Transport, Deployment Orchestrator, Load, Administration; единый error-contract (ApiError), health-checks, OpenAPI. • Реализация peer Transport API между ландшафтами: multipart/form-data (metadata + artifacts), status poll, маршруты DEV/TEST/PROD; интеграция с Deployment Worker (BUILD_PACKAGE / DEPLOY_PACKAGE) над существующими CLI. • Проектирование и работа с PostgreSQL: Metadata DB и Operational DB (раздельные инстансы), typed JSONB definitions, dependency index, locks (EDIT/IMPORT), транзакции, FOR UPDATE / очереди на БД (SKIP LOCKED). • Статический анализ SQL/YAML/конфигов DWH-проектов (sqlglot, sqlparse, networkx); правила именования, namespaces, циклические зависимости, диалекты Greenplum/ClickHouse. • Логика сборки транспортных артефактов и деплоя: стратегии миграций (create / alter / skip / drop / recreate / shadow), DB locks, логирование в deployer_metadata. • Интеграции: S3-compatible ArtifactStore (boto3; MVP — BYTEA, S3 — эволюция), Artifactory / private PyPI, GitLab CI. • Покрытие Unit- и Integration-тестами (pytest), Code Review, рефакторинг, отладка сквозных сценариев Activate / Import / Transport / Deploy. • Участие в Spec-Driven Development (specs, C4/Structurizr, ADR); стыковка с frontend по JSON/OpenAPI (Repository tree, OBJREQ/OBJTRAN, RUNMON, Admin). 📌 Обязательные технические навыки (Hard Skills): ✔️ Языки и фреймворки: уверенный Python 3.10+ (желательно 3.11–3.13); опыт FastAPI (routing, Depends, Pydantic-модели, OpenAPI, middleware, multipart upload); опыт CLI (Typer / Click / argparse). ✔️ Асинхронность и HTTP: понимание asyncio; клиенты httpx / aiohttp для peer-вызовов между ландшафтами; uvicorn/gunicorn (или аналог) для сервисов. ✔️ Базы данных: отличное знание PostgreSQL (транзакции, JSONB, индексы, advisory/FOR UPDATE locks, миграции схем — Alembic или аналог); опыт работы с Greenplum/PostgreSQL DDL через драйвер (psycopg2 / psycopg3); прямой SQL + понимание ORM при необходимости (SQLAlchemy — плюс). ✔️ SQL / DWH-домен: схемы, таблицы, views, functions, roles, external/FDW, transforms; жизненный цикл объектов склада; чтение и составление сложных SQL. ✔️ Парсинг и графы: sqlglot/sqlparse (или аналоги), графы зависимостей (networkx), топологический порядок выполнения. ✔️ Валидация и конфиги: Pydantic / pydantic-settings, PyYAML, TOML; env-based конфигурация (environs / dotenv). ✔️ Артефакты и файлы: ZIP/архивы, работа с файловой структурой проектов, S3 API (boto3). ✔️ Принципы разработки: SOLID, DRY, KISS, YAGNI; модульный дизайн (services / orchestrators / providers / backends); понимание Clean Architecture / hexagonal на уровне сервисов. ✔️ Инструменты: Git, uv, packaging (Hatchling/wheel), pre-commit (black, isort, mypy), GitLab CI. ✔️ Тестирование: pytest (+ pytest-cov, pytest-mock), Unit и Integration; умение писать тесты на API (TestClient / httpx ASGI). ✔️ Фронтенд (базовый): JavaScript/TypeScript, HTML/CSS, JSON/AJAX — для эффективной работы с UI-командой и OpenAPI-контрактами. Софт-скиллы: ✔️ Адекватная оценка сроков (особенно DDL, миграции, race-condition’ы locks/очередей). ✔️ Ответственность за изменения, влияющие на DEV/TEST/PROD-ландшафты. ✔️ Работа по Agile (Scrum/Kanban), Jira. ✔️ Умение работать по спецификациям (specs, OpenAPI, C4) до кода. Будет плюсом: • ClickHouse; • PXF / FDW / SAP datasource; shadow-миграции и безопасный schema evolution в DWH; • Очереди и воркеры: Redis / RabbitMQ / Celery (эволюция от DB-queue MVP); паттерны job/attempt/retry; • Авторизация: JWT, OAuth2, Keycloak / IAM (в MVP — actor stub, далее hardening); • Alembic (или Flyway/аналог) для Metadata/Operational DB; Postman/Insomnia + OpenAPI lint; • Structurizr DSL / PlantUML / C4; Spec-Driven Development; • Kubernetes / OpenShift; Docker / Docker Compose для локального подъёма Backend + PostgreSQL; • Jinja2 (генерация SQL/артефактов в Builder); orjson; multiprocess; • Опыт ETL/Load Tasks / Process Chains; понимание замены Git+Airflow-style promotion на продуктовый Transport; • TypeScript, современный SPA-стек; опыт multipart API и peer-to-peer интеграций между контурами.
⚠️ Будьте внимательны: вакансия размещена из открытых источников и может быть недостоверна.
Зарплата
160 000 ₽