О нас
Ruby Labs — ведущая технологическая компания, которая создает и управляет инновационными потребительскими продуктами. Мы предлагаем разнообразные возможности в сферах здравоохранения, образования и развлечений. Наши инновационные команды формируют будущее продуктов, ориентированных на потребителя, и мы всегда ищем увлеченных специалистов, чтобы присоединиться к нам. Узнайте больше о нашей истории по ссылке: https://rubylabs.com/about-us/
О вакансии
Мы ищем дисциплинированного, высокоавтономного Middle Next.js разработчика для создания и выпуска функционала одного из наших ключевых продуктов с подпиской D2C. Вы будете отвечать за функции от начала до конца в монорепозитории на TypeScript — клиент Next.js App Router, API на Fastify + Payload CMS с PostgreSQL и Cloudflare Workers на периферии — начиная с получения задачи, её разбиения, оценки, реализации, тестирования и мониторинга, до чистого релиза в продакшен и подтверждения, что всё работает для реальных пользователей.
Это практическая инженерная роль, подходящая для человека, который рассматривает продакшен как стандарт, а не как финишную черту. Полу-тестированный код, тихие ошибки и непроверенный AI-сгенерированный вывод недопустимы. Кодовая база насыщена соглашениями — это многоуровневая структура Feature-Sliced Design с жесткими правилами импорта — и от вас ожидается работа в рамках этих соглашений, а не обход их. Вы несёте ответственность за каждую взятую задачу и за каждую часть продукта, с которой работаете: если что-то ломается, регрессирует или остаётся недоделанным, это ваша ответственность довести до конца. Мы ожидаем максимальной автономии и реального вовлечения в продукт — вы работаете самостоятельно в рамках спринта, сообщаете о рисках до того, как они станут блокерами, и эскалируете архитектурные решения старшим инженерам, а не пытаетесь угадывать.
Основные обязанности
Разработка функционала
•Создавать функционал как на клиенте Next.js, так и на бэкенде Fastify + Payload CMS согласно требованиям продукта
•Писать код, который соответствует слоям, именованиям и правилам импорта команды в рамках Feature-Sliced Design
•Выпускать изменения за флагами функций и в рамках A/B тестов, полностью локализованных для всех поддерживаемых языков
•Интегрировать сторонних провайдеров — биллинг, email/CRM, аналитику — через REST API и вебхуки
Качество и надежность
•Покрывать функционал юнит-, интеграционными и e2e тестами на уровне, ожидаемом командой
•Проводить тщательный самообзор перед код-ревью и с таким же рвением ревьюить код коллег
•Исправлять баги и проводить анализ корневых причин повторяющихся проблем
•Оптимизировать производительность страниц и эндпоинтов — стратегию рендеринга и кэширования, запросы к базе данных, размер бандла
Безопасность и наблюдаемость
•Применять практики безопасной разработки: валидация схем, контроль доступа, безопасная работа с секретами
•Следовать практикам наблюдаемости — структурированное логирование, метрики и оповещения — используя существующие инструменты
Сотрудничество
•Разбивать, оценивать и выпускать собственные задачи в продакшен в рамках спринта — и оставаться за них ответственным после релиза
•Отвечать за области продукта, в которых работаете: их стабильность, производительность и последующие исправления
•Раннее и письменное выявление уточнений требований, изменений оценок и рисков
•Эскалация сложных архитектурных решений и критических рисков старшим инженерам
Требования
Обязательный опыт
•Более 2 лет коммерческого опыта с React, включая более 1 года с Next.js (App Router, Server Components, обработчики маршрутов, стратегии рендеринга и кэширования) и уверенный TypeScript
•Опыт работы с Node.js на типизированном HTTP-фреймворке (Fastify, Nest или Express) с PostgreSQL — проектирование REST API, миграции схем, интеграции через REST и вебхуки (проверка подписей, идемпотентность, повторные попытки) — а также понимание HTTP/REST, механизмов аутентификации и основ веб-безопасности
•Практический опыт с современным клиентским стеком: TanStack Query, Zustand, React Hook Form + Zod, Tailwind CSS и библиотекой компонентов React, такой как HeroUI, MUI или shadcn/ui
•Опыт работы с headless CMS с кодогенерацией на PostgreSQL (Payload, Strapi, Directus или аналогичные) — коллекции, контроль доступа, сгенерированные типы, миграции
•Дисциплина тестирования и доставки: e2e тесты (Cypress или Playwright) и юнит/интеграционные тесты (Vitest или Jest), Git flow, код-ревью, работа с CI
•Ежедневное использование AI-инструментов разработки (Claude Code или аналоги), включая их настройку под проект — контекст, инструкции, правила, MCP/интеграции — с полной ответственностью за качество, безопасность и корректность сгенерированного кода
•Английский — уровень B1+
Лидерские качества
•Отвечает за результат — доводит задачу от требования до продакшена без ожидания указаний и несет ответственность за результат и затронутую область
•Максимально автономен и вовлечен — нуждается в цели, а не в пошаговых инструкциях, и заботится о производительности продукта, а не только о закрытии тикета
•Проверяет перед тем, как доверять — рассматривает AI-вывод, ответы сторонних сервисов и собственный код как непроверенные до тестирования
•Структурированный коммуникатор — своевременно и письменно сообщает о рисках, блокерах и изменениях оценок в удаленной команде
•Знает границы своей ответственности — эскалирует архитектурные и вопросы безопасности вместо импровизаций
•Учится на инцидентах — исправляет корневую причину, а не только симптом
Локация
Ruby Labs работает в часовом поясе CET (Центральноевропейское время). Кандидаты из любой страны могут подать заявку, если они находятся примерно в пределах ± 4 часов от CET. Это обеспечивает оптимальное сотрудничество и коммуникацию в рабочее время.
Преимущества
•Удалённая работа: свобода работать из любого места и в любое время
•Неограниченный оплачиваемый отпуск
•Оплачиваемые национальные праздники
•Компания предоставляет MacBook: высококлассный Apple MacBook, предоставляемый всем сотрудникам, которым он необходим
•Гибкий договор с независимым подрядчиком: гибкость, автономия и предпринимательские возможности, налоговые льготы, возможности для нетворкинга, снижение обязательств работодателя и свобода работать из любого места. Подробнее по ссылке: https://docs.google.com/document/d/1nkrN76JlZkbKj9WSOhlT1_mni_CZeDkHdwfIjPXVwvk/preview?tab=t.0#heading=h.ndsdl4wapxtt
Процесс собеседования
После подачи заявки проводится тщательный отбор, который обычно занимает от 3 до 5 дней, но иногда может занять больше времени из-за большого количества заявок. Если есть потенциальное соответствие, переходим к следующим этапам:
•Скрининг с рекрутером (40 минут)
•Техническое собеседование (60 минут)