ВкусВилл · Москва · по договорённости
Обязанности:
Backend (Core & AI): Проектировать отказоустойчивые REST/WebSocket API на FastAPI: async/await, DI, middleware, кастомные обработчики исключений. Интегрировать локальные LLM и управлять контекстом через векторную БД Qdrant: поиск семантических схожестей, RAG-пайплайны. Работать с гибридным хранением данных: реляционные схемы PostgreSQL/SQL и документоориентированные коллекции MongoDB. Настраивать взаимодействие с объектным хранилищем S3 для тяжёлых медиафайлов: видео, изображения. Обеспечивать наблюдаемость системы: внедрять трейсинг OTEL, Jaeger, собирать метрики в Prometheus/Grafana, настраивать централизованное логирование.
Frontend (UI/UX & Performance): Строить SPA на React 18+ и TypeScript с использованием Ant Design: глубоко кастомизировать темы, создавать переиспользуемые UI-компоненты. Настраивать сборку и оптимизировать бандл через Vite: code splitting, lazy loading. Работать с Editor.js: дорабатывать кастомные блоки для вставки видео, файлов и изображений с загрузкой через API. Интегрировать фронтенд с бэкендом через Axios: настраивать интерцепторы, проброс токенов JWT, централизованную обработку ошибок и ретраи.
DevOps и процессы: Упаковывать сервисы в Docker, настраивать проксирование через Nginx. Сопровождать CI/CD-пайплайны в GitLab: сборка, тестирование, деплой. Участвовать в Code Review, поддерживать стандарты качества кода и помогать внедрять LLM-помощников в повседневную разработку. Управлять ветвлением по GitFlow и принимать архитектурные решения как на backend, так и на frontend.
Наш кандидат:
Backend: Глубокое знание Python и FastAPI: построение сложной структуры проекта, lifetime management, middleware для трейсинга и аутентификации. Опыт проектирования схем в PostgreSQL: индексы, оптимизация запросов. Опыт работы с агрегациями в MongoDB. Реальный опыт интеграции LLM, в том числе локальных моделей. Опыт работы с векторными хранилищами: Qdrant/OpenSearch. Опыт настройки стека наблюдаемости: OpenTelemetry (OTEL), Jaeger, Prometheus, Grafana.
Frontend: Уверенное владение React 18+: хуки, контекст, управление состоянием. Опыт хотя бы с одним из инструментов управления состоянием: Redux Toolkit/Zustand/MobX. Профессиональная работа с TypeScript: строгая типизация, дженерики, утилитарные типы. Опыт кастомизации Ant Design: переопределение Less/CSS-in-JS, создание собственных тем. Умение работать с API-клиентами, в частности Axios. Умение работать с файловыми потоками: FormData, Blob.
Дополнительно: Опыт работы с Editor.js. Понимание WebSockets, в частности для чатов или стриминга AI-ответов.
Отклик ведёт на сайт работодателя. Бесплатная регистрация открывает отклик и разбор резюме.