Уровень: Middle, от 3 лет коммерческого опыта
Формат: Контракт с возможностью продления
Занятость: Полная или частичная (от 32 ч./нед.)
Формат работы: Удалённо
О проекте
VIVI — защищённая медицинская SaaS-платформа для пластических хирургов. Мы переносим всю профессиональную жизнь врача и его команды в одну среду: ведение пациента от первого контакта до послеоперационного сопровождения, календарь, документы, фото- и видеоматериалы, протоколы осмотров и операций, коммуникации и аналитика. Всё это работает внутри платформы, а не в личных мессенджерах и на личных устройствах.
Мы делаем не типовую медицинскую CRM, а boutique-продукт: спокойный, быстрый, визуально выверенный интерфейс для требовательной профессиональной аудитории.
Главный принцип продукта — красота без ущерба функции. Врач должен чувствовать контроль, а не хаос.
Продукт находится на старте разработки. Платформы: веб и iOS. Рынок: Россия с дальнейшим масштабированием зарубеж.
Что нужно сделать?
- Разрабатывать веб-клиент VIVI на React / Next.js и TypeScript: брать задачи из бэклога, доводить их до готового и протестированного результата.
- Реализовывать рабочие экраны продукта по макетам: календарь, карточку пациента, протоколы осмотров и операций, настройки со справочниками и шаблонами документов, мессенджер, галерею и пр.
- Реализовывать ролевые интерфейсы: у хирурга, менеджера и ассистента разные экраны, права и сценарии работы.
- Собирать и развивать библиотеку UI-компонентов на основе дизайн-системы, совместно с дизайнерами следить за соответствием макетам.
- Подключать интерфейс к Laravel API по согласованным контрактам, работать на моках, если бэкенд не готов.
- Писать клиентский код с расчётом на переиспользование компонентов, учитывать архитектурный стиль FSD.
- Реализовывать нестандартные элементы интерфейса.
- Работать с медицинскими данными аккуратно: корректно обрабатывать сессии и 2FA, подписанные ссылки на файлы, ограничения отображения данных по ролям.
- Участвовать в код-ревью, предлагать улучшения по структуре и качеству кода.
Технический стек
Область
Технологии
FrontendReact, Next.js, TypeScript
MobileReact Native + TypeScript (iOS, App Store), единый кодовый контур с web-клиентом
Backend (для контекста)PHP Laravel, REST API
БД и кэшPostgreSQL (кластер Patroni + Etcd), Redis
CI/CD и инфраструктураGitLab, GitLab CI, Docker (Docker Compose, в перспективе Kubernetes)
Требования к кандидату
Обязательно
- От 3 лет коммерческого опыта во frontend-разработке, из них не менее 1–2 лет на React и TypeScript в продуктовых проектах.
- Уверенное владение React и TypeScript: хуки, управление состоянием, строгая типизация.
- Опыт работы с Next.js (SSR/SSG, роутинг, работа с API).
- Опыт интеграции с REST API, обработка ошибок и состояний загрузки.
- Опыт вёрстки по макетам Figma, адаптивная и аккуратная верстка с вниманием к деталям.
- Понимание, как устроены роли и права доступа на клиенте.
- Умение разбираться в коде, который вы пишете сами или генерируете с помощью AI-инструментов, и отвечать за его качество.
- Опыт работы в команде: код-ревью, Git, работа по задачам и срокам.
Будет плюсом
- Опыт работы с React Native.
- Опыт разработки сложных интерфейсов: календари, насыщенные формы, дашборды, табличные данные.
- Опыт работы с медицинскими или другими чувствительными данными.
- Опыт построения или развития UI-библиотек и дизайн-систем.
- Знакомство с GitLab CI и Docker.
- Опыт тестирования фронтенда (unit/e2e).
- Внимание к анимациям и переходам: интерфейс должен ощущаться живым и отзывчивым.
Личные качества
- Готовность брать ответственность за свой результат.
- Умение объяснять технические решения нетехническим участникам команды.
- Готовность работать в условиях неопределённости: часть требований уточняется по ходу.
- Аккуратность и внимание к деталям: для нас это продуктовая ценность.
Что предлагаем?
- Интересная задача с нуля: создание продукта без legacy.
- Небольшая команда без бюрократии, прямой контакт с продуктовой и дизайн-командой.
- Работа над сложным продуктом с реальной предметной областью и понятной пользой.
- Возможность расти вместе с продуктом после MVP.
Как отбираем?
- Короткий созвон (15–20 минут). Знакомимся, обсуждаем формат работы, занятость и ожидания.
- Техническое интервью (около 60 минут). Разбираем ваш опыт и один из прошлых проектов: какие решения вы принимали сами и что пришлось переделывать. Затем вместе смотрим небольшой фрагмент кода.
- Живая задача (60–90 минут). Решаем небольшую задачу из нашего продукта вместе, с демонстрацией экрана.
- Оплачиваемый пробный период. Первые 2-4 недели контракта, после чего решаем о продолжении работы.