Больше информации по резюме будет доступно после регистрации

Зарегистрироваться
Был сегодня в 09:38

Мужчина, 27 лет, родился 12 мая 1998

Москва, готов к переезду, готов к редким командировкам

Node.js Backend Developer

Специализации:
  • Программист, разработчик

Тип занятости: полная занятость, частичная занятость, проектная работа/разовое задание

Опыт работы 3 года 3 месяца

Ноябрь 2023Январь 2026
2 года 3 месяца
DPO Academy

Информационные технологии, системная интеграция, интернет... Показать еще

Backend Developer
B2B-платформа дополнительного профессионального образования. Корпоративные клиенты заказывают обучение сотрудников с выдачей дипломов установленного образца. Через три месяца после старта стал единственным бэкенд-разработчиком и вел весь серверный код платформы два года. Команда: CTO, бэкенд, два фронтенд-разработчика и менеджер. Работали по Scrum: двухнедельные спринты, ежедневные дейли, ретро раз в месяц, оценка задач по story points в Jira. Спроектировал и реализовал с нуля ключевые модули: заказы, оплата, генерация документов, авторизация через OAuth. Писал и поддерживал 80-90% серверной кодовой базы самостоятельно, CTO подключался только в критичных ситуациях. Генерация документов изначально работала синхронно и роняла сервис при нагрузке: таймауты, падения, дубли. Перевел всю обработку в фоновые очереди на BullMQ и Redis с ретраями, ограничением параллелизма и идемпотентным выполнением. После этого система стабильно обрабатывала 10-20 тысяч задач в день без единого инцидента. Отдельно оптимизировал генерацию для крупных заказов. Один заказ мог содержать несколько учебных программ, в каждой несколько учеников, у каждого по 7 документов с файлами из S3. При массовой генерации сервис падал на таймаутах к хранилищу. Вынес повторяющиеся файлы и данные из БД в Redis-кеш с инвалидацией, и проблема ушла полностью. Перепроектировал модули аутентификации и авторизации. Реализовал JWT с раздельными access и refresh токенами, систему ролей с правами доступа, NestJS guards и единый формат ошибок по всему API. В процессе нашел и исправил некорректную настройку TTL токенов, из-за которой сессии обрывались раньше времени. Обнаружил и устранил баг с неверным учетом бонусов после оплаты. Отдельно решил проблему с перезаписью файлов в S3: документы с совпадающими именами затирали друг друга. Добавил генерацию уникальных ключей. Решил проблему с загрузкой файлов через multipart/form-data во вложенных объектах. Перепробовал несколько подходов, включая base64 и перенос загрузки на фронтенд. В итоге вынес загрузку файлов в отдельные запросы к S3 с последующей привязкой ключей к записям в БД. Это решение стало стандартом для всех последующих модулей. Вынес бизнес-логику из контроллеров в сервисный слой. Спроектировал модульную структуру REST API, которую потом не приходилось переписывать при росте функциональности. Оптимизировал ORM-запросы через Prisma, внедрил кеширование и инвалидацию в Redis для частых запросов. Отслеживал p95 и p99 времени ответа. Покрывал критичные модули unit-тестами на Jest: оплата, авторизация, генерация документов. При росте объема функциональности и сжатых сроках до MVP дополнял автотесты ручным тестированием перед релизом. Проводил и проходил code review на постоянной основе. Вел техническую документацию в GitLab Wiki: логи изменений, регламент движения задач, доступы к сервисам. Настроил миграционные скрипты в GitLab CI для сборки и деплоя на dev и production. Деплой на VPS. Мониторинг ошибок через Sentry, метрики через Grafana. Технологии: Node.js, TypeScript, NestJS, PostgreSQL, Prisma, Redis, BullMQ, JWT, OAuth, Docker, MinIO, S3, Jest, GitLab CI, Sentry, Grafana, Jira, Nginx
Ноябрь 2022Октябрь 2023
1 год
Gazetchik

Информационные технологии, системная интеграция, интернет... Показать еще

Backend Developer
Сервис групповых рассылок и ретроспектив для команд и сообществ. Участники отвечают на вопросы, платформа с помощью AI собирает ответы и генерирует сводку в формате газеты. Единственный бэкенд-разработчик в команде из четырех человек: бэкенд, фронтенд, DevOps и фаундер. Самостоятельно проектировал архитектуру и принимал все технические решения на основе требований стейкхолдера. Спроектировал backend-приложение с нуля на NestJS: модульная архитектура, REST API, модель данных в PostgreSQL. Сам выбирал стек и определял структуру проекта. Интегрировал CloudPayments для приема платежей. Реализовал обработку вебхуков с HMAC-проверкой подписи, идемпотентную обработку платежных событий и логику автопродления подписок. Все edge-кейсы с двойными списаниями закрыл на этапе разработки, на проде инцидентов не было. Интегрировал OpenAI и GigaChat для генерации контента: платформа объединяла ответы участников в общие блоки, формировала выборки цитат дня и сводки. Настроил SSL-сертификаты вручную, так как GigaChat блокировал запросы без них. Реализовал Telegram-бота как альтернативный канал для участия в опросах. Пользователь мог отвечать через сайт или через Telegram, там же получал уведомления о новых выпусках и готовности результатов. Настроил аутентификацию с JWT access и refresh токенами, а также OAuth и Magick Link. Реализовал фоновые задачи на Bull и Redis для автоматизации рассылок и генерации контента. Подготовил инфраструктуру для локального запуска и деплоя: Docker Compose, GitLab CI. Корректировал конфигурацию Nginx и reverse proxy совместно с DevOps. Технологии: Node.js, TypeScript, NestJS, PostgreSQL, Prisma, Redis, Bull, JWT, OAuth, Docker, Docker Compose, GitLab CI, Nginx, CloudPayments, OpenAI API, GigaChat API, Telegram Bot API

Навыки

Уровни владения навыками
Продвинутый уровень
Node.js
TypeScript
NestJS
PostgreSQL
Redis
Git
REST API
Prisma
Jest
Swagger
OAuth
JWT
S3
Sentry
Agile
Code Review
Средний уровень
Docker
SQL
CI/CD
GitLab CI
BullMQ
Docker-compose
Microservices
Webhooks
Linux
Grafana
Atlassian Jira
Unit Testing
Базовый уровень
Nginx

Обо мне

Два года вел backend B2B-платформы в одиночку. С нуля реализовал сервис генерации документов. Позже, на крупных выгрузках, выяснилось, что синхронная обработка создает слишком большую нагрузку и роняет сервис. Перевел генерацию в фоновые очереди на BullMQ, добавил кеширование обращений к S3 и переработал сценарий массовой выгрузки. В результате система перестала падать и начала стабильно держать 10-20 тысяч фоновых задач в день. Стек: Node.js, TypeScript, NestJS, PostgreSQL, Redis. Отвечал за архитектуру, API, очереди, платежные интеграции и генерацию документов. Привык к code review, Scrum и документации в GitLab Wiki. Ищу команду, где важны надежность backend-логики и инженерная культура. Telegram: @Kereberee Телефон: +7 (916) 3691328

Высшее образование

2022
Высшее образование

Знание языков

Русский — Родной

Английский — C1 — Продвинутый

Гражданство, время в пути до работы

Гражданство: Россия

Разрешение на работу: Россия

Желательное время в пути до работы: Не имеет значения