Старший Full-Stack разработчик (Node.js + React)
Мы ищем старшего инженера, который возьмет на себя техническое руководство несколькими работающими продакшн-системами: бэкенд-сервисом на Node.js/TypeScript и большим React-приложением, которое он обслуживает. Вы будете отвечать за системы и технические решения внутри них.
Это не работа с нуля. Эти системы находятся в продакшене, с реальными пользователями, корпоративными интеграциями и многолетней историей. Значительная часть бизнес-логики находится в хранимых процедурах и триггерах SQL Server, а части поведения приложения управляются конфигурацией, хранящейся в базе данных, а не кодом. Первые недели вы проведете за чтением незнакомого кода и незнакомой базы данных, а не за написанием новых модулей.
За что вы будете отвечать
- Бэкенд на Node.js/TypeScript — API-контракты для внешних партнеров, внутренние эндпоинты дашборда, запланированные задачи и CLI-инструменты, а также интеграции с корпоративными системами.
- Большое React-приложение (Redux Toolkit, React Query, Vite, Module Federation, git submodules) наравне с бэкендом. Это полноценная full-stack роль, а не бэкенд-роль с редкими исправлениями UI.
- Слой данных — схема SQL Server, хранимые процедуры, триггеры и производительность запросов. Изменения схемы на staging и production применяются DBA, поэтому ваш DDL должен быть проверяемым и корректным с первого раза.
Чем вы будете заниматься
- Доставлять фичи end-to-end — от React-формы до хранимой процедуры, стоящей за ней.
- Отслеживать и объяснять бизнес-логику во frontend, backend и базе данных.
- Находить технический долг, решать, что стоит погасить и когда, а затем делать это.
- Писать спецификации для новой работы и поддерживать актуальную документацию в соответствии с кодом. Это часть нашего Definition of Done, а не второстепенная задача.
- Обрабатывать продакшн-проблемы в системах, которые вы не создавали, и становиться человеком, который может объяснить, почему что-то сломалось.
- Ревьюить код и участвовать в принятии технических решений вместе с небольшой командой инженеров — ревьюя работу друг друга, а не управляя ею.
Как выглядит успех
- Неделя 1: локальное окружение запущено, первый полезный pull request смержен.
- Месяц 1: вы можете отследить бизнес-процесс по всем трем слоям и объяснить его кому-то другому.
- Месяц 2: вы полностью отвечаете за одну доменную область и принимаете в ней решения, не требуя предварительной проверки.
Мы не ожидаем, что вы станете продуктивным через несколько дней, с кодовыми базами такого размера это было бы нереалистично. Мы ожидаем постепенного прогресса без того, чтобы кто-то водил вас за руку по коду.
Что мы ищем
- 5+ лет профессиональной разработки ПО, включая ответственность за продакшн-системы, а не за изолированные фичи.
- Отличное знание TypeScript и Node.js.
- Отличное знание SQL Server — T-SQL, хранимые процедуры, триггеры, индексы и планы выполнения. Вы должны комфортно работать с бизнес-логикой, которая живет в базе данных.
- Комфортная работа без полного ORM — код приложения выполняет запросы через query builder, а более сложная логика пишется напрямую в SQL.
- Отличное знание React — hooks, Redux Toolkit или аналогичное управление состоянием, data fetching, и дисциплина работы в большой существующей кодовой базе.
- Проектирование API-контрактов и интеграций, включая версионирование и обратную совместимость с внешними потребителями.
- Комфортная работа с внутренним фреймворком — вы освоите его по внутренней документации и по самому коду.
- Знакомство с dependency injection — наш бэкенд связывает сервисы через DI-контейнер.
- Вы пишете тесты. Наши тесты — Vitest, включая интеграционные тесты, которые запускаются против реального SQL Server в локальном контейнере.
- Осведомленность о безопасности в повседневной работе — аутентификация и токены, авторизация эндпоинтов и инъекции.
- Вы работаете с AI-ассистентами для кодирования и проверяете то, что они производят. Наши репозитории содержат соглашения для разработки с помощью AI, и мы ожидаем, что вы будете их использовать. Минимальный стандарт — вы можете защитить каждую строку, которую вы отправляете на ревью, независимо от того, кто ее написал.
- Профессиональный письменный английский. Вы будете читать и писать спецификации, документацию и комментарии к ревью кода на английском. Устный английский не требуется.
Приятно иметь
- Опыт работы с корпоративными или устаревшими интеграциями.
- Опыт работы с системами, где поведение во время выполнения управляется конфигурацией в базе данных.
- PostgreSQL — наша основная база данных здесь — SQL Server; Postgres используется в соседних сервисах.
Наш стек
TypeScript, Node.js, SQL Server, React, Vite. Бэкенд построен на внутреннем фреймворке; фронтенд собран из git submodules с использованием Module Federation.
Вам не обязательно иметь опыт работы со всеми используемыми инструментами. Вам нужно будет стать продуктивным в существующей продакшн-среде без длительного управляемого онбординга.
Условия работы
- B2B контракт, полная занятость
- Удаленно. Мы — компания из Словении и рассматриваем кандидатов, работающих удаленно из России и других стран.
- Предпочтительное время пересечения: 9:00–15:00 CET, обсуждаемо
- Указанная ставка — gross. Подрядчики несут ответственность за уплату собственных налогов и обязательных взносов в своей стране проживания
- Возможен ежегодный бонус
- Компенсация фитнеса и обучения.