{"id":1899403,"url":"https://alion.io/job/qsoft-ii-razrabotchik","title":"Python-разработчик AI-сервисов (LLM / RAG)","company":{"id":450407,"name":"QSOFT","domain":"qsoft.ru","url":"https://alion.io/company/qsoft-2","size_band":"51-200","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"HeadHunter","truth_index":{"grade":"E","score":25,"open_postings":7,"ghost_share":1,"stale_share":0,"repost_share":1,"time_to_fill_p50_days":30,"computed_at":"2026-10-06T05:45:30Z"}},"role":"AI/ML","role_family":"AI/ML","seniority":null,"employment_type":"full_time","work_mode":"hybrid","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Moscow, Russia"],"countries":["RU"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"1C","optional":false},{"name":"AI Agents","optional":false},{"name":"Alembic","optional":false},{"name":"Apache Kafka","optional":false},{"name":"Embeddings","optional":false},{"name":"FastAPI","optional":false},{"name":"Kubernetes","optional":false},{"name":"LangChain","optional":false},{"name":"Langfuse","optional":false},{"name":"LangGraph","optional":false},{"name":"LLM","optional":false},{"name":"Ollama","optional":false},{"name":"OpenAI","optional":false},{"name":"OpenTelemetry","optional":false},{"name":"PostgreSQL","optional":false},{"name":"Python","optional":false},{"name":"Qdrant","optional":false},{"name":"RAG","optional":false},{"name":"Redis","optional":false},{"name":"Reranking","optional":false},{"name":"SQLAlchemy","optional":false},{"name":"Structured Outputs","optional":false},{"name":"vLLM","optional":false},{"name":"Asyncio","optional":true},{"name":"Docker","optional":true},{"name":"Docker Compose","optional":true},{"name":"flake8","optional":true},{"name":"Function Calling","optional":true},{"name":"GitLab CI","optional":true},{"name":"Hybrid Search","optional":true},{"name":"Mypy","optional":true},{"name":"Pydantic","optional":true},{"name":"Pytest","optional":true},{"name":"Tool Use","optional":true}],"status":"live","first_seen_at":"2026-10-05T09:58:35Z","employer_posted_date":"2026-10-05","last_verified_at":"2026-10-06T23:06:21Z","board_verified":true,"closed_at":null,"days_open":1,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":1},"description":"TEAMLY - это IT-платформа для совместной работы и управления знаниями. Она бесшовно объединяет функции командной работы, ведения базы знаний и корпоративного обучения.Благодаря разнообразному функционалу она позволяет переводить весь накопленный опыт компании в реально работающие навыки и знания сотрудников.\nНам доверяют свои знания известные компании: ВкусВилл, Аналитический центр при Правительстве РФ, Капитал Life, 1С-Рарус, Интерлизинг. А также средний и малый бизнес.\nВ данный момент команда TEAMLY активно растет, в связи с чем мы будем рады видеть в нашей команде ИИ - разработчика. Востребованный продукт гарантирует быстрый рост и интересные задачи.\nЧем предстоит заниматься \n Развивать HTTP API и бизнес-логику двух асинхронных Python-сервисов на FastAPI.\n Проектировать и реализовывать RAG-пайплайны: retrieval, query rewriting, multi-hop поиск, сбор контекста, structured output, цитирование источников и обработку частичных ответов.\n Развивать агентные сценарии на LangChain, LangGraph и deepagents: инструменты, middleware, ограничения числа вызовов, защита от циклов и контроль контрактов ответа.\n Улучшать качество семантического поиска: chunking, dense/sparse retrieval, фильтры Qdrant, reranking, RRF и token budget.\n Развивать событийную индексацию статей, файлов и структурированного контента через Kafka.\n Обеспечивать корректную мультитенантность и фильтрацию результатов по правам пользователей, групп и сообществ.\n Интегрировать и заменять LLM-, embedding- и reranking-провайдеры, включая OpenAI-compatible API, vLLM и Ollama.\n Работать с PostgreSQL, Redis и Qdrant, проектировать модели данных и Alembic-миграции.\n Диагностировать проблемы качества, производительности и надежности на границах внешних сервисов.\n Развивать автоматические тесты и quality gates, поддерживать воспроизводимые локальные и CI-окружения.\n Улучшать наблюдаемость: структурированные логи, технические метрики, OpenTelemetry и трассировку LLM/RAG через Langfuse.\n Участвовать в декомпозиции задач, ревью кода и принятии архитектурных решений.\n Технологический стек Python 3.12, async/await;\n FastAPI, Pydantic 2;\n SQLAlchemy 2 async, Alembic, PostgreSQL;\n Redis, Apache Kafka, aiokafka;\n Qdrant, dense/sparse vectors, embeddings, reranking, RRF;\n LangChain, LangGraph, deepagents;\n OpenAI-compatible API, vLLM, Ollama;\n Pytest, pytest-asyncio, mypy, Black, Flake8;\n Docker, Docker Compose, Kubernetes, GitLab CI;\n Langfuse, OpenTelemetry.\n Что для нас важно \n Уверенное владение Python и практический опыт разработки backend-сервисов.\n Хорошее понимание асинхронного программирования: event loop, конкурентный I/O, таймауты, отмена, управление ресурсами и graceful shutdown.\n Опыт разработки API на FastAPI или сопоставимом Python-фреймворке.\n Практический опыт с PostgreSQL и SQLAlchemy: транзакции, конкурентный доступ, индексы, миграции и диагностика запросов.\n Опыт интеграции внешних сервисов и проектирования устойчивого взаимодействия: retry/backoff, timeout, idempotency, ограничение параллелизма и обработка частичных отказов.\n Понимание событийной архитектуры и семантики Kafka consumer: consumer groups, offset commit, rebalance, повторная доставка и идемпотентная обработка.\n Понимание устройства RAG: chunking, embeddings, retrieval, reranking, контекстное окно, ограничения LLM и способы снижения галлюцинаций.\n Умение писать unit- и интеграционные тесты для асинхронного кода, отделяя бизнес-логику от внешней инфраструктуры.\n Способность разбираться в существующей кодовой базе, находить причины проблем и предлагать минимальные, проверяемые изменения.\n Будет преимуществом\n Production-опыт с Qdrant или другой векторной базой.\n Практический опыт hybrid search, sparse retrieval, reranker и оценки ранжирования по Precision@K, Recall@K, MRR, MAP или NDCG.\n Опыт разработки LLM-приложений на LangChain/LangGraph или другом orchestration framework.\n Опыт работы со structured output, function/tool calling и потоковой генерацией.\n Понимание prompt injection, разграничения доступа к данным и других рисков безопасности RAG/agent-систем.\n Опыт эксплуатации сервисов в Kubernetes и настройки observability.\n Опыт работы с локальными моделями и inference-серверами: vLLM, Ollama, embedding/reranking inference.\n Офисный формат работы с возможностью перейти на гибрид\n\n Развитие - оплачиваем внешние курсы, даем корпоративную скидку на английский, поддерживаем выступления на конференциях, участие в митапах и вебинарах. Нам хочется развивать экспертность каждого сотрудника!\n Крупный и реально интересный продукт, который меняет мир к лучшему. Мы используем инновационные технологии, создаём передовые решения и предлагаем уникальную возможность быть частью команды, где ваши идеи и навыки могут повлиять на жизни многих людей;\n Комфорт - у нас классный офис в центре Москвы (Китай-город, Курская, Чистые пруды) с уютными рабочими местами. Предоставляем все необходимое для работы: хорошее железо, дополнительные мониторы, лицензированный софт и платные доступы;\n Команда - в TEAMLY действительно сплочённая команда профессионалов. Мы ценим работу каждого сотрудника, поддерживаем инициативы и помогаем с решением проблем;\n Яркая жизнь вне работы - каждый месяц устраиваем корпоративы, все вместе выезжаем на природу, ходим в бары и на квизы, участвуем в спортивных мероприятиях, играем в страйкбол, проводим вечера кино и смотрим шоу в комнате отдыха. Cтараемся, чтобы не только работать было комфортно, но и отдыхать хотелось вместе! Данное описание вакансии не является офертой.","description_format":"text","description_chars":5495,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[{"language":"Russian","level":"Advanced (C1)","optional":false}]},"benefits":[],"hiring_locations":[{"name":"Russia","iso":"RU","kind":"country"}],"hiring_excludes":[],"relocation_offered":false,"industries":["IT Consulting & Digital Transformation","Intranet & Knowledge Management"],"lifecycle":[{"event":"open","at":"2026-10-05T10:01:27Z"}],"visa":[],"liveness":{"score":86,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.86,"p_room":1,"age_days":0,"expected_fill_days":30,"reasons":["conf:7","win:early"],"computed_at":"2026-10-06T05:45:30Z"},"pay":null,"html_url":"https://alion.io/job/qsoft-ii-razrabotchik","json_url":"https://alion.io/job/qsoft-ii-razrabotchik.json","meta":{"generated_at":"2026-10-07T01:52:40Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler","counted_by":"address","units_charged":1,"used_today":3042,"day_limit":5000,"remaining_today":1958,"minute_limit":60,"resets_at":"2026-10-08T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":450407},"rest":"https://alion.io/mcp/rest/get_company?id=450407"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fqsoft-ii-razrabotchik"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fqsoft-ii-razrabotchik"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fqsoft-ii-razrabotchik"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/qsoft-ii-razrabotchik\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fqsoft-ii-razrabotchik"}]}