Reach out directly about this role
📎 We are looking for a Python Developer (DWH Platform / Backend / Fullstack-ready)
Salary: up to 160,000 ₽ for Sole Proprietorship Format: remote Employment: full-time Experience: 3–6 years
About the project: A development, validation, transport, and deployment platform for DWH objects between landscapes (DEV → TEST → PROD). Target DBMS: ADB (Greenplum) and ADQM (ClickHouse). Currently in production — a CLI pipeline Linter → Builder → Deployer. In development — an integrated scenario: Backend (Repository / Transport / Deploy Orchestration / Load / Admin), Execution Service, Deployment Worker, peer Transport API, and Web UI on top of existing CLIs.
Responsibilities: • Development and enhancement of toolchain modules in Python: mors-linter, mors-builder, mors-deployer (CLI with Typer, packaging with uv/Hatchling). • Refinement and implementation of the integrated scenario in FastAPI: Web API (M-API), Repository, Transport, Deployment Orchestrator, Load, Administration modules; unified error-contract (ApiError), health-checks, OpenAPI. • Implementation of peer Transport API between landscapes: multipart/form-data (metadata + artifacts), status poll, DEV/TEST/PROD routes; integration with Deployment Worker (BUILD_PACKAGE / DEPLOY_PACKAGE) on top of existing CLIs. • Design and work with PostgreSQL: Metadata DB and Operational DB (separate instances), typed JSONB definitions, dependency index, locks (EDIT/IMPORT), transactions, FOR UPDATE / DB queues (SKIP LOCKED). • Static analysis of SQL/YAML/DWH project configs (sqlglot, sqlparse, networkx); naming rules, namespaces, cyclic dependencies, Greenplum/ClickHouse dialects. • Logic for building transport artifacts and deployment: migration strategies (create / alter / skip / drop / recreate / shadow), DB locks, logging in deployer_metadata. • Integrations: S3-compatible ArtifactStore (boto3; MVP — BYTEA, S3 — evolution), Artifactory / private PyPI, GitLab CI. • Unit- and Integration-test coverage (pytest), Code Review, refactoring, debugging end-to-end scenarios Activate / Import / Transport / Deploy. • Participation in Spec-Driven Development (specs, C4/Structurizr, ADR); integration with frontend via JSON/OpenAPI (Repository tree, OBJREQ/OBJTRAN, RUNMON, Admin).
📌 Mandatory technical skills (Hard Skills):
✔️ Languages and frameworks: proficient Python 3.10+ (preferably 3.11–3.13); FastAPI experience (routing, Depends, Pydantic models, OpenAPI, middleware, multipart upload); CLI experience (Typer / Click / argparse). ✔️ Asynchronicity and HTTP: understanding of asyncio; httpx / aiohttp clients for peer calls between landscapes; uvicorn/gunicorn (or similar) for services. ✔️ Databases: excellent knowledge of PostgreSQL (transactions, JSONB, indexes, advisory/FOR UPDATE locks, schema migrations — Alembic or similar); experience working with Greenplum/PostgreSQL DDL via driver (psycopg2 / psycopg3); direct SQL + understanding of ORM when needed (SQLAlchemy — a plus). ✔️ SQL / DWH domain: schemas, tables, views, functions, roles, external/FDW, transforms; warehouse object lifecycle; reading and writing complex SQL. ✔️ Parsing and graphs: sqlglot/sqlparse (or similar), dependency graphs (networkx), topological sort. ✔️ Validation and configs: Pydantic / pydantic-settings, PyYAML, TOML; env-based configuration (environs / dotenv). ✔️ Artifacts and files: ZIP/archives, working with project file structures, S3 API (boto3). ✔️ Development principles: SOLID, DRY, KISS, YAGNI; modular design (services / orchestrators / providers / backends); understanding of Clean Architecture / hexagonal architecture at the service level. ✔️ Tools: Git, uv, packaging (Hatchling/wheel), pre-commit (black, isort, mypy), GitLab CI. ✔️ Testing: pytest (+ pytest-cov, pytest-mock), Unit and Integration; ability to write API tests (TestClient / httpx ASGI). ✔️ Frontend (basic): JavaScript/TypeScript, HTML/CSS, JSON/AJAX — for effective work with the UI team and OpenAPI contracts. Soft skills: ✔️ Realistic estimation of deadlines (especially for DDL, migrations, race conditions in locks/queues). ✔️ Responsibility for changes affecting DEV/TEST/PROD landscapes. ✔️ Agile work (Scrum/Kanban), Jira. ✔️ Ability to work according to specifications (specs, OpenAPI, C4) before coding.
Will be a plus: • ClickHouse; • PXF / FDW / SAP datasource; shadow migrations and safe schema evolution in DWH; • Queues and workers: Redis / RabbitMQ / Celery (evolution from DB-queue MVP); job/attempt/retry patterns; • Authorization: JWT, OAuth2, Keycloak / IAM (MVP — actor stub, then hardening); • Alembic (or Flyway/similar) for Metadata/Operational DB; Postman/Insomnia + OpenAPI lint; • Structurizr DSL / PlantUML / C4; Spec-Driven Development; • Kubernetes / OpenShift; Docker / Docker Compose for local setup of Backend + PostgreSQL; • Jinja2 (SQL/artifact generation in Builder); orjson; multiprocess; • ETL/Load Tasks / Process Chains experience; understanding of replacing Git+Airflow-style promotion with a product Transport; • TypeScript, modern SPA stack; experience with multipart API and peer-to-peer integrations between environments.
14 days ago
up to 160,000 RUB
per month
Grade
Middle
Experience
3-6 years
Work Format
Remote
Employment
Full-time
AI writes it from your resume. You only have to send it.
By country