Описание
Описания нет
Задачи
•Разрабатывать и поддерживать бэкенд-сервисы на Python с FastAPI и asyncio
•Развивать логику диалогового агента: сценарии и состояния звонка, извлечение данных из реплик, работу с LLM
•Писать интеграции с МИС и CRM клиник, расписанием врачей, записью пациентов и внешними API
•Проектировать REST API для веб-интерфейса операторов и админки клиник
•Работать с фоновыми задачами и очередями Celery, TaskIQ, RabbitMQ и Redis
•Проектировать схемы данных и оптимизировать запросы в PostgreSQL
•Разбирать логи звонков, находить и исправлять ошибки в поведении агента
•Участвовать в код-ревью, покрывать код тестами и улучшать кодовую базу
•Развёртывать и сопровождать сервисы в Docker на Ubuntu
Требования
•Коммерческий опыт разработки на Python от 1 до 3 лет
•Опыт разработки на FastAPI и уверенное понимание async/await в Python
•Умение работать с Pydantic v2: валидация данных, схемы запросов и ответов, настройки
•Уверенное знание PostgreSQL и SQL, индексов и оптимизации запросов; опыт с SQLAlchemy
•Опыт написания и сопровождения миграций Alembic
•Опыт работы с Celery: фоновые и отложенные задачи, повторные попытки, периодические задачи
•Понимание RabbitMQ: очереди, exchange, routing и гарантии доставки
•Опыт работы с Redis: кэширование, брокер или бэкенд для задач, TTL и базовые структуры данных
•Умение собирать образы Docker, поднимать окружение из нескольких сервисов и находить причины сбоев
•Опыт работы с Git и процессом pull request
•Знание Linux и Ubuntu на уровне повседневных задач: логи, процессы, сеть
•Умение читать чужой код, задавать вопросы и доводить задачи до прода
Будет плюсом:
•опыт интеграции с LLM API, промпт-инжиниринга и структурированного вывода
•знакомство с LangGraph, LangChain и другими фреймворками для агентов
•опыт с WebSocket, потоковой передачей данных и аудио
•знакомство с IP-телефонией SIP, Asterisk, LiveKit или медиапайплайнами Pipecat
•опыт интеграций с медицинскими информационными системами
•привычка писать тесты на pytest
Условия
•Зарплата от 80 000 до 120 000 рублей
•График 5/2