yandex
C
Calmis
Зарплата
2 000 $ – 4 000 $
SeniorУдалённоПолная занятость

Senior / Middle Frontend Engineer (React/TypeScript + Electron)

ИИОценка ИИ

Привлекательная вакансия для опытных инженеров: работа в технологичном стартапе с современным стеком (React 19), удаленный формат и оплата в USDT. Проект на базе Matrix дает возможность работать с интересными open-source технологиями.

Сформировано ИИ автоматически. Не является проверкой вакансии или работодателя.


Вакансия из открытого источника
Пожаловаться
+400% приглашений от HR

Улучшите резюме под эту вакансию

Возьмём требования и создадим новую версию резюме с акцентом на нужный опыт

Сложность вакансии

ЛегкоСложно
ИИОценка ИИ

Высокая сложность обусловлена необходимостью работы с крупным чужим легаси-кодом (Element Web) и специфическим стеком (Matrix SDK, Electron, RxJS). Требуется не только знание React, но и глубокое понимание архитектуры мессенджеров и процессов форкинга.

Сформировано ИИ автоматически. Не является проверкой вакансии или работодателя.

Анализ зарплаты

Медиана3 500 $
Рынок2 500 $ – 5 000 $
ИИОценка ИИ

Предлагаемая вилка 2000 - 4000 USDT (примерно 185k - 370k RUB) соответствует рыночному уровню для Middle+/Senior Frontend разработчиков в РФ и СНГ, однако для Senior уровня на международном рынке верхняя граница может быть выше.

Сформировано ИИ автоматически. Не является проверкой вакансии или работодателя.

Сопроводительное письмо

Составьте сопроводительное письмо под эту вакансию с вашим резюме

Иллюстрация сопроводительного письмаИллюстрация сопроводительного письма

Контакты для отклика

Откройте контакты, указанные в вакансии.

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

#вакансия #frontend #react #typescript #electron #удаленнаяработа

Вакансия: Senior / Middle Frontend Engineer (React/TypeScript + Electron)

Компания: Calmis (стартап, корпоративный мессенджер на базе Matrix)

Уровень зп: 2000 - 4000 USDT

Локация: весь мир

Формат работы: удалённо, полная занятость, гибкий график с ориентацией на МСК

Опыт: от 3 лет (Middle+ / Senior)

Мы — молодой технологический стартап, создаём безопасный корпоративный мессенджер на базе протокола Matrix, развивая и адаптируя open-source клиент Element Web/Desktop. Ищем сильного фронтендера, готового погружаться в чужой код и строить на его основе крутой продукт.

Обязанности:

Разработка и поддержка форка Element Desktop (main/renderer, IPC, electron-builder)

Создание SPA-страниц и виджетов (React/TS, интеграция с Matrix SDK)

Проектирование state-менеджмента без Redux (синглтон-сторы, flux-диспетчер)

Написание unit-тестов (Jest, Vitest, RTL)

Оптимизация производительности: профилирование React, виртуализация, борьба с ререндерами

Интеграция с REST API / JS SDK (авторизация, обработка ошибок)

Работа в крупном легаси и форке: точечные изменения, патчи зависимостей, merge с апстримом

Участие в архитектурных решениях и код-ревью

Требования:

React 19 и TypeScript в strict-режиме (от 3 лет): хуки, useSyncExternalStore, дженерики, discriminated unions

Готовность работать с легаси class-компонентами и flux-диспетчером

Опыт в крупном чужом легаси и форках, уверенный git (rebase, конфликтные merge, bisect)

Понимание SPA-архитектуры и принципов разделения ответственности

Опыт интеграции с REST API / JS SDK

Вёрстка: HTML/CSS, CSS Modules, PostCSS, дизайн-токены, мультитемность. Tailwind не используем

Unit-тесты (Jest, Vitest, Testing Library)

Инженерная культура: линт, i18n, a11y, код-ревью

Английский на уровне чтения документации (B1+)

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

Production-опыт с Electron (IPC, main/renderer, preload, сборка)

MVVM, Feature-Sliced Design, flux-сторы

RxJS на уровне архитектуры (switchMap, combineLatest, shareReplay, горячие/холодные потоки)

WebRTC и LiveKit (ICE/STUN/TURN, SDP, SFU, simulcast)

Сборка и тулинг: Vite, Webpack, pnpm/Yarn Berry, патчи зависимостей, Nx

E2E: Playwright, testcontainers, Storybook

Знание Matrix или опыт с API других мессенджеров

Навыки форкинга open-source проектов

Потенциал к техлидству

Условия:

Возможность влиять на архитектуру продукта

Дружная команда и интересные технические вызовы

Процесс отбора:

Скрининг резюме

Краткое кросс-интервью в ТГ

Интервью с командой

Оффер

📩 Отклик в Telegram: Откликнуться (присылай сразу резюме)

+400% к собеседованиям

Создайте идеальное резюме с помощью ИИ-агента

Создайте идеальное резюме с помощью ИИ-агента

Навыки

  • React
  • TypeScript
  • Electron
  • Matrix SDK
  • Jest
  • Vitest
  • React Testing Library
  • RxJS
  • WebRTC
  • Vite
  • Webpack
  • Playwright
  • Storybook
  • Git
  • CSS Modules
  • PostCSS

Возможные вопросы на собеседовании

Проверка опыта работы с Electron и понимания безопасности/архитектуры.

Расскажите о вашем опыте работы с Electron. Как вы организуете взаимодействие между Main и Renderer процессами, и какие меры безопасности (contextIsolation, preload) используете?

Важно понять, как кандидат справляется с синхронизацией форка с основным репозиторием.

Опишите ваш процесс работы с upstream-репозиторием при поддержке форка. Как вы решаете сложные конфликты при merge и используете ли git bisect для поиска багов?

В вакансии указано отсутствие Redux и использование синглтон-сторов.

Как бы вы спроектировали систему управления состоянием для мессенджера без использования Redux, учитывая необходимость реактивного обновления UI при получении событий через Matrix SDK?

Проверка навыков оптимизации в React.

Какие методы профилирования React-приложений вы используете для поиска лишних ререндеров и как решаете проблемы производительности в списках с большим количеством сообщений?

Оценка владения RxJS, который указан как плюс.

В каких сценариях в мессенджере целесообразно использовать RxJS? Можете ли вы объяснить разницу между горячими и холодными потоками на конкретном примере?

Сформировано ИИ автоматически. Не является проверкой вакансии или работодателя.

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

C
Calmis
от 2 000 $
более 1000 офферов получено
4.9

1000+ офферов получено

Устали искать работу? Мы найдём её за вас

Quick Offer улучшит ваше резюме, подберёт лучшие вакансии и откликнется за вас. Результат — в 3 раза больше приглашений на собеседования и никакой рутины!