Банк еды «Русь» — первая фудшеринговая организация и самый крупный банк еды в России. Входит в ТОП-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-подход к разработке