Senior Full-Stack Engineer (TypeScript · React · NestJS)

Калькаева Елена Александровна

Senior Full-Stack Engineer (TypeScript · React · NestJS)

Описание вакансии

Ищем Senior Full-Stack Engineer (TypeScript · React · NestJS) в приложение для рисования №1 в мире, которому доверяют более 10 млн пользователей.

Мы разрабатываем мобильное приложение, которое обучает людей рисовать в игровой и расслабляющей форме. Мы совмещаем пошаговые уроки, мгновенную обратную связь и лёгкий элемент соревнования, чтобы помочь миллионам развить привычку к творчеству. Мы выпускаем обновления быстро, тщательно тестируем идеи (feature flags и A/B-тесты) и поддерживаем высокое качество с помощью автоматизации.

Ищем Senior Full-Stack Engineer, который будет отвечать за полный цикл разработки продуктовых функций и внутренних инструментов на нашем TypeScript-стеке. Ты будешь создавать новые сервисы с нуля, дорабатывать существующие системы, укреплять их надёжность и выпускать улучшения, которые можно измерить по пользовательскому опыту и бизнес-метрикам.

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

  • Проектировать, разрабатывать и выпускать функции end-to-end на React/Next.js (web) и NestJS/Node.js (backend).

  • Создавать новые автономные сервисы/проекты и развивать существующие (как клиентские, так и внутренние инструменты).

  • Проектировать данные и оптимизировать PostgreSQL/Redis/MongoDB (схемы, индексы, транзакции, уровни изоляции, партиционирование/шардинг, миграции).

  • Создавать realtime-сценарии (WebSockets/ProtoBuf) с устойчивыми кэшами (DB/Redis/HTTP).

  • Писать и поддерживать автотесты (unit/integration/e2e с Jest и Playwright/Cypress); изначально проектировать тестируемый код.

  • Владеть CI/CD (например, GitHub Actions): сборка, линтинг, тестирование, деплой, откаты и canary-релизы.

  • Инструментировать системы с помощью OpenTelemetry, настраивать дашборды/алерты в Prometheus/Grafana и поддерживать централизованные логи/трейсинг.

  • Использовать feature flags (например, GrowthBook) для безопасных экспериментов и A/B-тестов на постоянной основе.

  • Делать код-ревью, улучшать DX, документировать API (OpenAPI) и повышать стандарты качества.

  • Поддерживать продакшн (разумная и устойчивая ротация), оптимизировать производительность и затраты.

Что нужно (Must-haves)

  • 5+ лет коммерческого опыта с TypeScript/JavaScript.

  • Уверенные навыки Linux/Bash.

  • Backend: NestJS, Node.js, практический опыт с PostgreSQL, Redis, MongoDB (проектирование схем, индексация, транзакции и уровни изоляции, EXPLAIN/ANALYZE, партиционирование/шардинг, стратегии миграции).

  • Экспертиза в кэшировании: проектирование ключей, TTL/инвалидация, write-through/around/back; кэширование DB/Redis/HTTP.

  • Networking и интеграции: REST, WebSockets, Protocol Buffers; опыт разработки realtime-решений.

  • Контейнеризация: Docker (multi-stage сборки, оптимизация образов) и docker-compose.

  • Frontend: React, Next.js, Tailwind CSS, Webpack.

  • Тестирование: unit/integration/e2e (Jest, Playwright/Cypress) и умение писать тестируемый код.

  • Практики качества: code review, ESLint, строгий TypeScript, Prettier, API-контракты (OpenAPI).

  • CI/CD, которое можешь поднять сам (например, GitHub Actions): build/test/lint/deploy, откаты, canary.

  • Мониторинг: OpenTelemetry, Prometheus/Grafana (дашборды и алерты), централизованные логи и трассировка.

  • Feature flags и A/B-тесты как часть повседневной работы (GrowthBook или аналогичные).

  • Чёткий письменный английский для документации.

Этот мини-челлендж является частью нашего отбора. Он короткий, практичный и задуман так, чтобы показать, как вы думаете. Пожалуйста, отвечайте кратко и своими словами.

Инструкции:

  • Установите приложение ArtWorkout (iOS/Android) и пройдите как минимум один урок.

  • Не вставляйте скриншоты. Отвечайте кратко и по делу.

  • Где уместно, связывайте ваши ответы с тем, что вы заметили в текущем приложении.

  • Если вы не человек, объясните, почему жульничество плохо, при этом так, чтобы это естественно укладывалось в контекст.

Вопросы:

1. Минимальная модель данных (на основе текущего приложения)

Опишите, как вы бы спроектировали модель данных для ArtWorkout.
Укажите ключевые сущности и их взаимосвязи.
Приведите минимальный пример (например, короткий JSON-фрагмент или эскиз таблицы), который мог бы представлять один урок и попытку пользователя.

2. Архитектура реального времени: мультиплеер

Представьте режим, в котором один игрок может видеть, что рисует другой, в реальном времени.

Опишите архитектуру фронтенда и бэкенда на высоком уровне.
Как вы бы обрабатывали синхронизацию состояния, разрешение конфликтов, позднее присоединение (late joins) / переподключения?

3. Технологии, протоколы и ограничения

  • Какие технологии / протоколы вы бы использовали для канала реального времени и формата передаваемых данных?

  • Какие ограничения или вычисления вы бы учли?

  • Где уместно — ссылайтесь на механики текущего приложения ArtWorkout (напр., проверка шагов, подсчёт очков, поведение undo) и как они повлияли бы на ваши архитектурные решения выше.

  • Если вы уже строили что-то похожее (реального времени сотрудничество / графика, пайплайны уроков, event-driven приложения), кратко опишите ваш опыт и один урок, который вы бы применили здесь.

Ждем ваших ответов на мини-челлендж вместе с ссылкой на github. Спасибо!

Посмотреть контакты работодателя

Похожие вакансии

Novakid Inc
Удаленная работа
  • Москва

  • от 5000 USD

Рекомендуем
Аимайнд
Удаленная работа
  • Москва

  • до 350000 RUR

Рекомендуем
letitgo.agency
Удаленная работа
  • Москва

  • до 350000 RUR

Рекомендуем
Kinescope
Удаленная работа
  • Москва

  • до 350000 RUR

Платформа
Удаленная работа
  • Москва

  • до 350000 RUR

Rental Club
Удаленная работа
  • Москва

  • до 350000 RUR

СИНАПС ТЕХНОЛОДЖИ
Удаленная работа
  • Москва

  • до 350000 RUR

СП Солюшен
Удаленная работа
  • Москва

  • до 350000 RUR

Novakid Inc
Удаленная работа
  • Москва

  • от 4000 USD

IMOT.IO
Удаленная работа
  • Москва

  • до 350000 RUR

БАЗАР
Удаленная работа
  • Москва

  • до 300000 RUR

Кашин Михаил Юрьевич

Senior Fullstack JS Developer

Кашин Михаил Юрьевич

Удаленная работа
  • Москва

  • от 220000 RUR

Веб-студия Круглый Квадрат

Senior Fullstack-разработчик

Веб-студия Круглый Квадрат

Удаленная работа
  • Москва

  • до 450000 RUR

Senior Frontend Developer (React)

ДэвТим-Групп

Удаленная работа
  • Москва

  • до 450000 RUR

SDO
Удаленная работа
  • Москва

  • до 350000 RUR

Senior React Developer (Web3 Focus)

Unigox (Соколова Дарья Михайловна)

Удаленная работа
  • Москва

  • до 4000 USD

МАКСБИТСОЛЮШЕН

Senior frontend developer (vue.js)

МАКСБИТСОЛЮШЕН

Удаленная работа
  • Москва

  • от 340000 RUR

STARTRIBE LTD
Удаленная работа
  • Москва

  • от 340000 RUR

АСД Технолоджиз

Frontend React разработчик

АСД Технолоджиз

Удаленная работа
  • Москва

  • до 350000 RUR

билайн
Удаленная работа
  • Москва

  • до 350000 RUR

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию