Backend-разработчик Python AI-сервисов
Мы ищем Backend Developer, для которого Claude Code — рабочая среда: человека, который быстро строит с AI, но проверяет и отвечает за последствия AI-кодинга, а при необходимости разбирается в React и TypeScript.
В проекте уже есть ведущий backend-инженер, и ты приходишь к ней в пару. Это не роль помощника: у тебя будут свои зоны ответственности и свои решения.
О продукте
Мы разрабатываем текстовую AI-среду для авторов — усилитель когнитивных способностей. Целевая аудитория: писатели фикшн и нон-фикшн, копирайтеры, технические райтеры, исследователи и студенты-дипломники, редакторы, журналисты, переводчики, блогеры, сценаристы.
Внутри: иерархия материалов с моментальным доступом к любому файлу, выбор топ-моделей (Claude, GPT, Gemini, Grok, DeepSeek, Qwen, Kimi), библиотека редактируемых промптов, AI-слой с контекстом и retrieval, редактор на Tiptap, Chrome-расширение Echo.
Стек: Python 3.11, FastAPI, Pydantic, Supabase, Chroma. Фронт: React 18, TypeScript, MobX, Tiptap.
Что нужно делать
- Освоить бэкенд целиком и понимать фронт настолько, чтобы чинить его без посторонней помощи.
- Развивать бэкенд AI-функций: чат, стриминг ответов, retrieval, Deep Research.
- Работать с API LLM-провайдеров: параллельные вызовы, лимиты, кэширование промптов, стоимость.
- Определять контракты между фронтом и бэкендом и знать, где ставить проверки.
- Работать с промптами, контекстом, retrieval и Chroma.
- Строить CLAUDE.md, skills.
- Ревьюить AI-generated PR быстро и системно, а не читать подряд.
- Находить дефекты за зелёными тестами.
- Разбирать баги, до которых AI не доходит или которые он уверенно «чинит» неправильно.
- Если на фронте случилась беда — разобраться в React + TypeScript и поправить.
- Принимать технические решения и отвечать за результат.
Требования
Обязательно:
- Опыт от трёх лет коммерческой бэкенд-разработки, в том числе сервисы на LLM в продакшене.
- Python и асинхронность: asyncio (gather, TaskGroup, Semaphore, отмена задач, таймауты); разница между async, тредами и процессами, GIL, когда что использовать; httpx или aiohttp, пул соединений.
- FastAPI: async-эндпоинты, Depends, Pydantic v2; стриминг (StreamingResponse, SSE, background tasks); обработка обрыва клиента.
- API LLM-провайдеров (OpenAI, Anthropic, Gemini): стриминг, tool use / function calling, structured output; prompt caching, подсчёт токенов, usage; rate limits (RPM, TPM), 429, ретраи с backoff; понимание, что у разных провайдеров разные форматы, и опыт с абстракцией над ними (LiteLLM или своя).
- Данные: PostgreSQL (транзакции, индексы, конкурентная запись); Redis (кэш, локи, очереди, pub/sub).
- Фронт: понимание React + TypeScript на уровне, чтобы в случае большой беды поправить самому.
Будет плюсом:
- RAG: эмбеддинги, векторные БД (Chroma, pgvector, Qdrant), чанкинг.
- Очереди: Celery, arq или Dramatiq для долгих задач вроде Deep Research.
- Observability: логирование LLM-вызовов, трейсинг (Langfuse, OpenTelemetry), учёт стоимости.
- Инфраструктура: Docker, nginx (настройки под SSE), базовый CI.
- Evals: как проверить, что после смены промпта ответы не стали хуже.
- Тесты: pytest, моки LLM-вызовов.
Условия
- Full-time, удалённо.
- Зарплата обсуждается на собеседовании.
- Английский B1+: читать и писать техническую документацию.
- Опционная программа.