Python Developer (DWH Platform / Backend / Fullstack-ready)
до 160 000 ₽в месяц
Удалённоот 3 летПолная занятость
PythonSQLPostgreSQLGitTypeScriptJavaScriptClickHouseFastAPIPytestDWHasyncioGreenPlum
Описание
Ищем Python Developer для работы над платформой разработки, валидации, транспорта и развёртывания DWH-объектов между ландшафтами (DEV → TEST → PROD). Целевые СУБД: ADB (Greenplum) и ADQM (ClickHouse).
Обязанности
- Разработка и развитие модулей 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 (BUILDPACKAGE / DEPLOYPACKAGE) над существующими 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)
Требования
- Уверенный Python 3.10+ (желательно 3.11–3.13)
- Опыт FastAPI (routing, Depends, Pydantic-модели, OpenAPI, middleware, multipart upload)
- Опыт CLI (Typer / Click / argparse)
- Понимание 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 ₽ по ИП
- Удаленный формат работы
- Полная занятость
Процесс отбора
- Отклик: •••