Project: Refactoring the backend of an existing staffing/HR platform for a new database structure, essentially migrating a complex system while preserving business logic.
What you will be doing
- Design a new DB schema (PostgreSQL) to replace the current one and create a data migration plan without data loss or significant downtime of the production system.
- Rewrite the backend for the new structure — read and correctly transfer business logic from legacy code, which is sometimes undocumented.
- Support/develop async infrastructure: queues (RabbitMQ), scheduled background tasks, report/certificate generation (PDF).
- Synchronously support the frontend on Vue 3 (Pinia, Quasar) where the API contract changes.
- Plan and justify a phased migration strategy (features/phases, rollback, test environments) — this is independent architectural work, not task-based tickets.
Must-have
- 5+ years of commercial development in Python, with a significant portion being asynchronous backend (asyncio, aiohttp / FastAPI / similar).
- Deep knowledge of PostgreSQL: designing schemas from scratch, normalization, indexes, transactions, performance on non-trivial data volumes.
- Experience with production database schema migrations.
- Real-world experience refactoring/rewriting a significant part of an existing system's backend (not from scratch) — ability to read someone else's undocumented code and restore business logic from it.
- Confident and proficient use of AI development tools (Cursor / Claude Code) for acceleration — not in the sense of "letting the AI write all the code": understanding what's happening under the hood is important, willingness to write and review code manually, thorough review of generated code before it goes into the project.
- Experience with async ORM and migration tools (Alembic or similar).
- Vue 3 (Composition API) + Pinia at a production development level, experience with Quasar or a comparable UI framework, ability to create high-quality layouts, review AI-generated layout code, and understand frontend-backend interaction specifics (to prevent frontend from dragging the backend down).
- Understanding/experience with message queues (RabbitMQ or similar) in the context of background tasks and inter-service communication.
- REST API — contract design, versioning, backward compatibility with live clients.
- Docker, CI/CD (GitLab CI or similar), basic understanding of deployment automation (Ansible or similar) — not necessarily writing playbooks yourself, but understanding how code reaches production.
- Experience writing tests against a real database (pytest + fixtures), not just mocks — ability to design a test environment for a system where business rules are critical.
- Autonomy in architectural decisions: ability to propose and defend a migration strategy, rather than waiting for detailed specifications.
Good to have
- Experience with integrations with external financial/legal services (payment gateways, EDI/electronic signatures, tax APIs).
- Experience with document generation (Jinja2 → PDF, weasyprint or similar).
- Java (basic level) — the system has a separate microservice in Java/Gradle.
- Experience as a Tech Lead on a project of comparable scale.
Technology Stack
Backend: Python 3, aiohttp (async), Gino (async ORM) → PostgreSQL, Alembic (migrations), RabbitMQ (aio-pika), Jinja2 + WeasyPrint (PDF generation), JWT authentication, Swagger/OpenAPI.
Frontend: Vue 3 (Composition API), Pinia, Quasar 2, Axios.
Infrastructure: Docker, GitLab CI, Ansible (deployment), pytest.
Conditions
• Project-based employment (for developing the new backend structure), with further discussion of transitioning to full-time.
• Paid vacation (4 weeks per year).
• From 180,000 ₽ based on interview results.