Fullstack-разработчик (Node.js / Next.js, упор на backend)
Описание от работодателя
Банк еды «Русь» — первая фудшеринговая организация и самый крупный банк еды в России. Входит в ТОП-3 благотворительных фондов в России по объёмам оказываемой помощи в денежном эквиваленте. Наша миссия: мы создаём инструменты и технологии перераспределения товаров для повышения качества жизни людей и заботы об окружающей среде.
Что мы разрабатываем Единая платформа товарной благотворительности — рабочий продукт, уже эксплуатируемый в production, а не стартап с нуля. Сегодня платформа закрывает розничный фудшеринг (магазины → волонтёры → благополучатели) и развивается в полноценную национальную инфраструктуру.
Куда мы идём Стратегическая цель — стать национальным оператором товарной благотворительности: единая платформа, к которой подключаются десятки региональных банков еды и партнёрских НКО, с раздельным и защищённым контуром данных для каждого.
Ближайшая дорожная карта:
Мультитенантность — платформа, обслуживающая много организаций на одной инфраструктуре с изоляцией данных (Row-Level Security)
Выделение сервисов из монолита — интеграции и общие функции переезжают в отдельные сервисы, связанные событиями
Новые направления фудшеринга — помимо розничного: «Корзина доброты» / марафоны, промышленный фудшеринг, зоофудшеринг
Кабинет благополучателя и портал НКО — self-service для получателей помощи и организаций-партнёров
Государственные интеграции — ЕСИА, Госуслуги, СМЭВ
Постепенный уход от legacy-учёта в 1С в пользу собственной платформы
Это редкая возможность строить технологию, которая измеряется не выручкой, а количеством накормленных людей.
Как мы работаем — AI-first Вся разработка ведётся с активным использованием AI-агентов (Claude Code / Codex и аналоги) — в режиме полноценной agentic-разработки, а не автодополнения.
Поэтому нам нужен человек, который:
Реально ведёт разработку через AI-агента (Claude Code CLI / Codex / Cursor agentic-режим), а не «принимает подсказки IDE»
Умеет управлять контекстом модели и разбивать задачу так, чтобы агент выдавал корректный результат
Верифицирует сгенерированный код — тестами и построчным ревью diff’а, понимает, где модели ошибаются и где им нельзя доверять
Может объяснить и починить код, который отправляет в ревью, независимо от того, кто его написал — человек или модель
Если вы пишете весь код руками и относитесь к AI с подозрением — это не наша вакансия. Если вы уже перестроили свой процесс вокруг AI-агентов и отвечаете за качество результата — нам по пути.
Что предстоит делать Разработка серверной части платформы по задачам, декомпозированным техлидом
Работа в рамках трёхслойной архитектуры: Route Handlers → Service Layer → Infrastructure
Реализация REST API: единый контракт ответа, обработка ошибок, валидация на границах (Zod)
Работа со схемой данных Prisma: модели, миграции, транзакции
Доработка интерфейсов: экраны и формы на React / Next.js для своих задач — от API до UI
Фоновые процессы: задачи по расписанию (cron), outbox, retry-политики, идемпотентность
Интеграции с внешними системами: МойСклад JSON API, Bitrix24 CRM, SMS / email / Telegram / VK / MAX
Работа с S3-совместимым хранилищем (Yandex Object Storage): presigned URLs, валидация файлов
Участие в развитии ролевой модели доступа (RBAC) и изоляции данных (RLS)
Написание unit/integration-тестов к каждой задаче (реальная БД в integration-тестах) и e2e-сценариев на Playwright
Диагностика проблем на тестовых стендах и в production: логи, метрики, состояние подов в Kubernetes
Участие в code review
Требования Обязательные навыки
AI-разработка
Реальный опыт agentic-разработки через AI-агента (Claude Code / Codex / аналоги) как основного инструмента — не автодополнение
Умение верифицировать и дорабатывать сгенерированный код
Языки и runtime
TypeScript 5.x — уверенный уровень
Node.js 22 — уверенный уровень: event loop, async/await
Данные и PostgreSQL
Реляционная модель данных — понимание: таблицы и связи (1:1, 1:N, N:M), первичные и внешние ключи, ограничения целостности (NOT NULL, UNIQUE, CHECK), нормализация и осознанная денормализация
SQL / PostgreSQL 16 — уверенный уровень: JOIN и агрегации, подзапросы и CTE, оконные функции — базово; транзакции и уровни изоляции, блокировки
Индексы — понимание: B-tree и когда он не помогает, составные и частичные индексы, цена индекса на запись
EXPLAIN / EXPLAIN ANALYZE — умение прочитать план запроса: Seq Scan против Index Scan, способы соединения (Nested Loop, Hash Join), расхождение оценки строк с фактом; найти по плану причину медленного запроса и проверить, что исправление помогло
Запросы из ORM — умение увидеть SQL, который генерирует Prisma, и распознать проблему N+1
Backend и API
Next.js 14 App Router — уверенный уровень: Route Handlers, middleware
REST API design — базовый/уверенный уровень
Zod — уверенный уровень: валидация на системных границах
Prisma 5.x — уверенный уровень: schema, migrations, $transaction
Redis — базовый уровень: кэш, rate limiting
Frontend
React 18 — уверенный базовый уровень: компоненты, хуки, формы
TanStack Query 5 — базовый уровень
Tailwind CSS — базовый уровень
Аутентификация, безопасность и данные
NextAuth.js v4 — базовый уровень: JWT-сессии, Credentials provider
Понимание базовых принципов Web Security (OWASP Top 10, CSRF, CSP)
Аутентификация и авторизация — понимание разницы: аутентификация устанавливает, кто пользователь (логин, сессия, токен), авторизация решает, что ему разрешено; понимание, почему это разные ответы сервера (401 и 403)
RBAC — понимание модели: пользователь → роли → права на действие с ресурсом; проверка прав на сервере при каждом запросе, а не только скрытием кнопок в интерфейсе; принцип минимальных привилегий
Изоляция данных — понимание, зачем нужна проверка не только права на действие, но и принадлежности конкретной записи (доступ по чужому ID); общее представление о Row-Level Security в PostgreSQL
Понимание требований 152-ФЗ к обработке персональных данных — платформа работает с паспортными данными и СНИЛС
Тестирование
Jest 29 — unit/integration тесты
Playwright — уверенный уровень: e2e-сценарии, локаторы, фикстуры, авторизованные сессии; отладка падений по trace, скриншотам и видео; запуск в headless Chromium, в том числе в CI
Инфраструктура и эксплуатация
Linux и командная строка — базовый уровень: bash, файлы и права, процессы, логи, переменные окружения, SSH
Виртуальные серверы (VPS/VDS) — понимание устройства: ОС, диски, сетевые интерфейсы, доступ и базовая настройка
Виртуализация и контейнеризация — понимание разницы: виртуальная машина со своим ядром поверх гипервизора против контейнера на общем ядре хоста (namespaces, cgroups); образы и слои
Docker / Docker Compose — базовый уровень: сборка образа, запуск локального окружения
Сети — базовый уровень: TCP/IP, DNS, HTTP/HTTPS и TLS, порты, NAT, балансировщики и обратные прокси
Kubernetes — базовый уровень: Pod, Deployment, Service, Ingress, ConfigMap/Secret, CronJob; как приложение получает конфигурацию и секреты
kubectl — уверенное базовое использование: get, describe, logs, exec, port-forward, rollout status; работа с контекстами и namespace
Git и CI/CD — merge request’ы, чтение и отладка пайплайнов GitLab CI
Желательные навыки
Fastify — на нём построены выделенные сервисы
Событийная интеграция сервисов: брокер сообщений (NATS или аналог), паттерн transactional outbox
Yandex Cloud — понимание основных сервисов: Compute Cloud, Managed Service for Kubernetes, Object Storage, VPC и группы безопасности, IAM и сервисные аккаунты, Lockbox
Наблюдаемость — Grafana (чтение дашбордов, поиск нужной панели, простые запросы), VictoriaMetrics (метрики, запросы на PromQL/MetricsQL); умение по метрикам и логам понять, что пошло не так
Helm — чтение и правка чартов
МойСклад JSON API или аналогичные ERP/складские системы
Наши возможности Работа в крупнейшем благотворительном проекте в России
Удалённый формат работы
Официальное оформление по ТК РФ
Возможность учиться у техлида и расти в проекте с реальной production-нагрузкой
Что поможет выделиться при отклике Описание вашего AI-процесса: как вы ведёте задачи через AI-агента, как декомпозируете, как верифицируете результат
Примеры кода/pet-проектов, где виден agentic-подход к разработке