Мы в поиске старшего frontend-программиста, мы делаем AI-ассистента для работы с большими массивами разнородных материалов: документы, аудиозаписи, видео, стенограммы.
Какие задачи необходимо решать:
Развивать веб-интерфейс на React 18 + TypeScript: рабочее пространство с документами и стенограммами, чат с ассистентом, конструктор документов, настройки, администрирование;
Реализовывать потоковые сценарии: стриминг ответов модели и событий через SSE (свой менеджер переподключения с курсором), онлайн-распознавание речи через gRPC-web, воспроизведение и разметка аудио/видео с осциллограммой;
Вести миграцию с legacy UI-кита (MUI v4, EOL) на Tailwind + shadcn/ui: новые экраны сразу на новом слое, старые переносить постепенно, не останавливая поставку;
Держать архитектуру фронта: слоистая структура (app → pages → widgets → features → modules → entities → shared), MobX-сторы, единый HTTP-слой, ролевой интерфейс по привилегиям. Границы слоёв проверяются ESLint-ом — обходить их нельзя;
Покрывать логику юнит-тестами (Jest + Testing Library) и участвовать в запуске E2E-контура (Playwright) — его ещё предстоит поставить;
Работать в связке с бэкендом (.NET) и аналитиком: уточнять контракты API и событий, разбирать требования, давать оценки, ревьюить код коллег;
Использовать AI-агентов в разработке (Claude Code / Cursor) — у нас это часть рабочего процесса, а не эксперимент.
Наши ожидания:
От 3 лет коммерческой разработки на React и TypeScript в strict-режиме: дженерики, типизация API-слоя, отсутствие any по умолчанию;
Опыт работы с любым зрелым state-менеджером (MobX, Redux, Zustand) и понимание, зачем разделять серверное состояние и состояние интерфейса;
Практика реалтайм-сценариев: SSE, WebSocket или long-polling — с переподключением, отменой и обработкой отказов, а не только happy path;
Умение работать с большой существующей кодовой базой: аккуратный рефакторинг, миграция библиотек, способность не сломать соседние фичи;
Юнит-тесты как часть нормальной работы, а не отдельная задача «когда будет время»;
Внимание к состояниям интерфейса: загрузка, пустой список, ошибка, длинная операция. Длительные AI-операции — основной сценарий, и он должен быть понятен пользователю;
Git, code review, работа по задачам в трекере, готовность писать понятные описания изменений.
Будет плюсом, если:
Опыт с MobX 6, Tailwind CSS, shadcn/ui, react-hook-form, виртуализацией длинных списков;
Разработка интерфейсов для LLM: потоковая выдача, цитирование источников, редактирование сгенерированных документов;
Опыт с gRPC-web/protobuf, мультимедиа (wavesurfer.js, плееры, таймкоды);
Мы- аккредитованная IT компания, занимающаяся разработкой роботизированных систем. Каждый день мы создаем уникальные продукты в команде увлеченных профессионалов и ...
Стоматологическая клиника Light Dental Group приглашает старшую медицинскую сестру / старшего медицинского брата для организации работы среднего медицинского персонала. ...
Наша компания – «Специальный Технологический Центр», – крупное производственное предприятие оборонно-промышленного комплекса, официально входящее в реестр ...