This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
We are looking for an engineer who can work effectively in a complex environment: understand existing systems, improve them carefully, deliver new features, and reduce technical debt without breaking production.
Job Responsibility:
Delivering product features end-to-end
Working with existing Enji services: understanding, extending, and refactoring them
Participating in design sessions with PMs, BAs, and designers: challenging assumptions, proposing alternatives, and estimating implementation complexity
Prototyping complex flows in Cursor / v0 before they become formal specifications
Addressing technical debt thoughtfully and with clear reasoning
Reviewing pull requests from other developers, including juniors and mid-level engineers
Requirements:
3+ years of commercial software development experience
1+ year in AI engineering
Production experience with Python (FastAPI or Flask — what matters is real-world usage with migrations, testing, and production deployments)
Production experience with Vue 3 (Composition API, TypeScript, reactivity, component architecture). React experience alone does not satisfy this requirement — Vue is the primary frontend framework at Enji, and onboarding speed matters
PostgreSQL: migrations, indexing, and basic understanding of query plans
Docker / docker-compose — ability to build and run a local stack independently
Git proficiency: rebase workflow, atomic commits, meaningful commit messages
Hands-on experience using AI tools in day-to-day development (Cursor / Claude Code / Copilot / Codex / others)
Language Proficiency: English at B2-C1 level, Russian at C2 level
Nice to have:
Quasar — the entire frontend stack is built on it
Experience with message buses (NATS / Kafka / RabbitMQ / Redis Streams) — inter-service communication is based on NATS
Experience with Clean Architecture or similar patterns (DDD, Hexagonal Architecture)
Experience with CASL or other authorization systems
Experience with background job processing (Celery, APScheduler, RQ, or any scheduler)
Experience with integrations (Slack API, Telegram Bot API, Google APIs, Jira, GitLab webhooks)
Experience with LLM integrations — we use UMA, a PM agent, and a continuously growing AI functionality layer
Open-source contributions or well-structured pet projects