Все вакансии России 0

Fullstack-разработчик (Node.js / Next.js, упор на backend)

200 000 – 200 000 ₽
Благотворительный фонд Банк еды Русь
Москва Постоянная занятость Удаленная работа

Описание

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

Откликнуться
Источник: hh · 3 дня назад

Похожие вакансии в городе Москва

Все вакансии в городе Москва →