Город: Москва
Занятость: Полная занятость, Полный день
Опыт работы: От 3 до 6 лет
Обязанности:
Разрабатывать интерфейсы операторского рабочего места: сетки видеопотоков, карточки событий/тревог, списки камер.
Реализовывать карту: маркеры/кластеры, фильтры, интерактивные оверлеи.
Интегрироваться с API (GraphQL через URQL, REST через openapi-fetch), настраивать типизацию и кэширование (React Query).
Внедрять и улучшать видеоплеер (Video.js + HLS.js), оптимизировать задержку/буферизацию.
Поддерживать архитектуру по Feature-Sliced Design (FSD), соблюдать конвенции и качество кода.
Участвовать в ревью, профилировать производительность.
Требования:
3–5+ лет в веб-разработке, из них 2+ года — React.
TypeScript на уровне middle+: generics/utility types, строгий режим, ESLint.
Практический опыт с React Query (кэш, инвалидация, фоновые рефетчи, optimistic updates).
Опыт картографии (Leaflet/MapLibre/Mapbox) или сложных визуализаций (Canvas/SVG).
Интеграции REST/GraphQL, работа «от схемы» и генерации типов.
Базовые навыки Docker/Docker Compose.
Готовность работать в офисе в Белграде.
Будет плюсом:
Видео-стриминг: HLS/WebRTC, multi-view (grid), хоткеи.
CASL (RBAC/ACL), Better Auth, защищённые маршруты.
Playwright (фикстуры, trace, изоляция состояния).
Продвинутый MobX (атомарные апдейты, эффекты).
Опыт в строгой структуре проектов (FSD) и соблюдении архитектурных линтеров.
Вклад в open-source/тех-блог/доклады.
Условия:
Влияние на продукт реального сектора (городская безопасность).
Сильная команда, код-ревью, архитектурные сессии.
Прозрачные релизы (semantic-release), автогенерация версий.
Уровень компенсации — конкурентный, обсуждается индивидуально.
Это офисная позиция в Белграде.
Технологии (стек)
Core: React 19, TypeScript 5.8, Vite 6, React Router 7
State/Data: MobX 6, TanStack Query 5, URQL, openapi-fetch
UI/UX: Ant Design 5, Emotion, Leaflet/React-Leaflet, Video.js + HLS.js, React DnD
Auth/ACL: Better Auth, CASL
i18n: i18next
Тесты/Качество: Vitest, Playwright, Testing Library, ESLint/Prettier, Husky/lint-staged, Commitlint, Semantic Release
Архитектура: Feature-Sliced Design (FSD), barrel-exports, eslint-plugin-project-structure
Адрес: Белград, ,
Похожие вакансии