КРАФТТЕК

Frontend разработчик/Tech Lead (React, Canvas)

Не указана
  • Санкт-Петербург
  • Полная занятость
  • Полный день
  • От 3 до 6 лет
  • JavaScript
  • PostgreSQL
  • Exprees.js
  • React
  • TypeScript
  • Canvas
  • Konva
  • REST
  • Node.js

О компании

Мы развиваем dotspace — платформу для совместной работы в реальном времени. В основе продукта — интерактивный графический холст с возможностью рисовать, редактировать схемы, управлять документами и обмениваться идеями.
Наши пользователи — команды, которые создают визуальные карты знаний, архитектурные схемы и рабочие пространства.


У нас много сложных технических вызовов:

  • оптимизация работы с Canvas/WebGL для больших диаграмм и тысяч элементов;
  • организация реального времени (синхронизация нескольких пользователей, WebSocket, CRDT/Yjs);
  • балансировка между быстрыми улучшениями и стратегическим развитием архитектуры (монолит → модульный монолит/микросервисы).

Мы ищем технического лидера, который возьмет на себя архитектурное видение фронтенда и будет драйвить развитие платформы вместе с командой.

Что предстоит делать:

1. Архитектура и лидерство

  • Определять техническое направление развития фронтенда: React, Canvas/WebGL, real-time коммуникации.
  • Формировать стандарты кода, подходы к тестированию, CI/CD, документации.
  • Участвовать в стратегических решениях по backend-архитектуре и API (REST/WebSocket, кэширование, очереди).
  • Вести технический roadmap: от быстрых фиксов до долгосрочного разделения системы на сервисы.
  • Быть ментором для команды: помогать, обучать, проводить код-ревью, развивать культуру качества.

2. Фронтенд и Canvas

  • Развивать графический холст: трансформации объектов, работа с линиями и кривыми, снаппинг, undo/redo.
  • Поддерживать производительность при работе с большими сценами (мемоизация, батчинг, виртуализация).
  • Решать задачи математики/геометрии (расчёт трансформов, работа с координатными системами).
  • Использовать Canvas/WebGL-фреймворки (Konva, PixiJS) или нативный Canvas2D в зависимости от задач.
  • Работать с UI: состояние в React, контекст, Suspense, оптимизация рендера.

3. Backend и API (в связке с командой)

  • Проектировать REST- и WebSocket-эндпоинты, следить за консистентностью контрактов.
  • Выявлять узкие места: N+1 запросы, избыточные ответы, отсутствие кеширования.
  • Внедрять механизмы оптимизации (Redis, батчинг, правильные индексы, стратегическое кеширование).
  • Давать рекомендации по эволюции инфраструктуры (Postgres, ORM, брокеры сообщений).

4. Безопасность и надежность

  • Учитывать OWASP Top 10 на клиенте и сервере.
  • Настраивать заголовки безопасности (CSP, X-Frame-Options, Strict-Transport-Security).
  • Правильно работать с токенами (JWT refresh flow, httpOnly cookies).
  • Следить за безопасностью WebSocket-подключений.

Наш стек:

  • Frontend: TypeScript, React, Zustand/Recoil (управление состоянием), Canvas2D/Konva/PixiJS, Vite, Tailwind, Jest/Vitest, Playwright.
  • Backend: Node.js (Nest.js/Express), PostgreSQL (Sequelize/Prisma), Redis, WebSocket.
  • Инфраструктура: Docker, CI/CD (GitHub Actions/GitLab CI), Nginx, облака.
  • Инструменты: ESLint/Prettier, Storybook, Sentry, OpenTelemetry.

Требования:

Обязательные:

  • 5+ лет опыта в JavaScript/TypeScript.
  • Глубокие знания React (hooks, context, Suspense, оптимизация рендера).
  • Опыт работы с Canvas/WebGL, решение задач трансформации и геометрии.
  • Умение профилировать производительность, устранять лаги, оптимизировать рендер.
  • Понимание HTTP, REST, WebSocket, кеширования (ETag, Cache-Control).
  • Опыт работы с Node.js и PostgreSQL на уровне проектирования API и оптимизации запросов.
  • Практика написания тестов (юнит/интеграция/e2e).
  • Опыт менторинга или технического лидерства.

Будет плюсом:

  • Опыт с CRDT (Yjs, Automerge) или другими технологиями синхронизации в реальном времени.
  • Опыт оптимизации рендеринга больших списков и сцен (виртуализация, батчинг).
  • Понимание модульного монолита и подходов к миграции в микросервисы.
  • Опыт настройки безопасности (CSP, CSRF, XSS-защита).
  • Знание систем наблюдаемости (Sentry, OpenTelemetry, Prometheus).

Мы предлагаем:

  • График работы 5/2, полностью офисный формат работы — удалённые и гибридные варианты не предоставляются.
  • Участие в создании сложного продукта, где много нетривиальной инженерии.
  • Возможность влиять на техническую архитектуру и процессы.
  • Команду, которая ценит качественный код и честную коммуникацию.
  • Современный стек и свободу предлагать новые технологии.
  • Конкурентную зарплату и бонусы.