Больше информации по резюме будет доступно после регистрации
ЗарегистрироватьсяБыл более двух недель назад
Мужчина, 24 года, родился 15 января 2002
Москва, готов к переезду, не готов к командировкам
Backend разработчик (Go, Node.JS, Nest.JS)
Специализации:
- Программист, разработчик
Тип занятости: полная занятость, частичная занятость, проектная работа/разовое задание
Опыт работы 6 лет 2 месяца
Декабрь 2023 — по настоящее время
2 года 5 месяцев
Москва
Информационные технологии, системная интеграция, интернет... Показать еще
Node.JS / Go Backend разработчик
AdTech, аффилированный маркетинг. Участвовал в нескольких бизнесах компании - ConvertSocial, Takeads, AMS (внутренняя централизованная платформа)
Здесь много крутого, пока нет времени расписать :0
Из последнего интересного - разработка изолированного безопасного окружения (worker_threads, isolated_vm) для запуска интеграционных JS скриптов в отдельных потоках, с возможностью задать расписание автозапуска, с мониторингом памяти/CPU, управлением, трекингом ошибок и перезапуском. При этом внутренний код скрипта может общаться с внешним окружением (самим backend-сервером, базами, брокерами и прочим) через CQRS команды и запросы.
Стек (со всех проектов):
* Go 1.24 (httpServer, gorm) для выосоконагруженных частей системы (до 10к RPS)
* Nest.JS, uWebSockets.js для низконагруженных частей системы (до 1к RPS)
* GraphQL (Apollo Server)
* Sequelize, Knex
* RabbitMQ (≈200 активный очередей с версионированием, где-то версия уже дошла до v30, + dead letter queues и suspicious queues)
* Kafka, Schema Registry и Event-Driven Architecture
* Валидация AJV и Json Schema
* PostgreSQL, Clickhouse, MongoDB, Redis
* worker_threads, isolated_vm (Потоки в Node.JS)
* lerna (монорепозитории)
* Domain Driven Design и CQRS, Гексагональная архитектура
* Transaction Outbox / Context.
* Покрытие больше половины функционала unit и e2e тестами (jest, supertest)
* Keycloak, S3
* Argo CD, Kubernetes, Sentry, Lens, kubectl, kubefwd, port forwarding
* Инфраструктура - AWS, GCP, Rackspace (разные проекты и окружения), DWH
* Опыт работы в «ограниченном пространстве» («новый запрос с данными должен работать не дольше +3% времени от текущего»)
* Опыт поддержания 100% обратной совместимости для нового функционала
* Использование ИИ Агентов и MCP сервера для оптимизации работы - Cursor, Windsurf, Claude, Deepseek, Perplexity, Notebook LM
Июнь 2021 — Декабрь 2023
2 года 7 месяцев
StormWall
Москва, stormwall.network/
Node.JS / Go Backend разработчик
Компания занимается предоставлением услуг защиты сети (L3/L4 OSI) и вебсайтов (L7 модель OSI) от DDoS атак (Cybersecurity-as-a-Service).
Разработка White Label проекта (B2B и B2C) с постепенным переходом от старых сервисов (Moleculer.JS) и систем к новым, написанным нами с нуля на Nest.JS.
Проект за 2 с половиной года написан с полного нуля до приватного релиза для наиболее крупных партнеров и клиентов.
Построили SOA-архитектуру (service-oriented), где сервисы могут быть переиспользованы даже соседними проектами и командами разработки.
Внутренняя архитектура совмещает как монолитные решения (3 штуки), так и микросервисы (около 25 штук), общение между сервисами по HTTP или AMQP.
Зоны ответственности строго разделены - у каждого микросервиса своя бд (PostgreSQL, Clickhouse, MongoDB, MariaDB) и задача (BFF, хук менеджер, оркестратор, сокет менеджер, L3/L7 статистика, PDF, синхронизатор и прочие)
ℹ️ Команда:
* Планирование задач на 1 неделю, недельные спринты.
* 3 Постоянных бекендера (я в т.ч.) с самого начала не менялись
* 1-2 Меняющихся фронта, за всё время было ≈6 различных фронтов, начинали с React, перешли на Angular.
* Проджект менеджер, дизайнер, QA, DevOps
* Контракты взаимодействия с фронтом - внутренняя npm библиотека или Swagger
ℹ️ Бекенд сервисы обслуживают следующих клиентов:
* Личный кабинет партнера
* Личный кабинет клиента партнера (с брендированием самого партнера, на домене партнера, без упоминания StormWall)
* Личный кабинет прямого клиента компании StormWall ("старый" личный кабинет)
* Публичное API для клиентской интеграции (с документацией)
* Бекофис компании (центр управления и мониторинга для noc team и support team, различные инструменты для sales team и marketing team).
ℹ️ Достигнутые результаты:
* Внедрение Keycloak для согласованной аутентификации на старых и новых сервисах
* Переезд "старого" лк на наши новые сервисы
* Релиз двух новых личных кабинетов, общающихся с нашими сервисами
* Новые сервисы по сравнению со старыми более быстрые, легкомасштабируемые (изначально проектировали под это), оптимизированы по части хранения данных и скорости чтения. Рекордное ускорение чтения: 56 сек —> 700 мс
* Приблизили метрики и статистики в личном кабинете к realtime. Раньше отставание относительно Си-шных анализаторов трафика было около 300 сек, с задержкой до 1200 сек под DDoS атакой. Сейчас отставание от 0 до 120 сек. Теперь клиент практически в realtime может смотреть подробную статистику по трафику на сеть/вебсайт, в том числе во время активной DDoS-атаки.
* Оптимизация Clickhouse таблиц. Терабайтные таблички со статистиками заменены на десяти- и сто-гигабайтные, при этом теперь хранится больше полезных данных и метрик, ускорено время чтения бд (и время ответа бекенда) благодаря семплированию метрик по разным семплам с различной глубиной хранения и фильтрованию + кешированию бизнес-критичных метрик для бесконечного хранения. Теперь клиент может открыть данные по атаке, произошедшей несколько лет назад и увидеть все детали (ранее из-за большого объёма эти метрики хранились всего полгода).
* Благодаря п.5 расширены аналитические возможности для sales team. На 75% уменьше количество инцидентов, когда выставленный клиенту счет с указанием потреблённого трафика расходился с данными с оборудования самого клиента (типа Zabbix). Полностью исключен ранее возможный вариант, когда клиент под конец биллингуемого периода меняет конфигурацию защиты и пропадает часть трафика и уменьшается итоговый счет за услугу.
* Благодаря п.5 расширены аналитические возможности для marketing team, увеличено количество публикаций аналитиков StormWall в прессе (lenta, tass, cnews, vedomosti, securitymedia).
ℹ️ Стек и прочий опыт проекта:
* Высоконагруженную часть системы писали на Golang (Go 1.18, gin, sqlx), в моменты DDoS-атак доходило до 50k RPS
* Низконагруженную и доменную часть системы на Nest.JS (Node.JS).
* Разработка на React, Redux, Webpack (В основном багфиксы или минорные задачи, когда фронтендер занят).
* Python Jupyter Notebook для тестирования гипотез или быстрой разработки инструментов для внутреннего использования (pandas, matplotlib, numpy и прочие библиотеки)
* Опыт собеседований Backend разработчиков на позицию Junior и Middle в соседнюю команду
* Проведение демо-встреч руководству
* PostgreSQL - inet типы, индексы, оптимизация запросов, транзакции
* Timescale DB (расширение для pg) для хранения временных рядов и хранения «небольших данных» (до 140 млн строк)
* Clickhouse - Терабайтные таблички с миллиардами строк. Запросы с десятками джоинов и CTE-expressions, работа с различными *MergeTree движками, Materialized Views, опыт оптимизации и профилизрования запросов, настройки партиционирования и сортировки. Использование кликхаусных встроенных методов по типу quantile и других)
* TypeORM - Только для простых запросов или контроля миграций, около 90% всех запросов - чистый SQL
* MySQL/MariaDB - чистый SQL, как хранилище для Zabbix
* Redis - кеширование и session-like данные, ранее как хранилище для BullMQ
* RabbitMQ - связь между микросервисами, ≈60 различных очередей + dead letter queues и suspicious queues
* Телеграм бот на Telegraf
* WebSockets (вебсокеты, socket.io) для уведомлений
* S3 (MinIO) для логотипов, картинок, документов
* Опыт работы, исправлений и интеграции с легаси-микросервисами на Moleculer.JS, HAPI и NATS
* Много работы со стримами и библиотекой event-stream - много где данные переносятся стримами и двусторонними пайпами nest-nest, nest-pg, nest-mysql, nest-clickhouse)
* Опыт поиска и оптимизации узкого места (bottleneck) в процессах, затрагивающих 6-8 микросервисов
* Инфраструктура: Gitlab CI, Kubernetes, helm, werf, Zabbix, Graylog (ранее был Elasticsearch), Docker Swarm
* Интеграция с оркестратором BPM процессов Camunda
* Интеграции с базами интернет-регистраторов (RIPE, APNIC, IPInfo, и д.р.) для получения информации по IP, ASN, организации.
* Пока не было выделенного DevOps, своими руками занимался настройкой CI/CD на minikube, werf, helm charts
Март 2021 — Август 2021
6 месяцев
Аптека 149
Дербент, apteka149.ru
Медицина, фармацевтика, аптеки... Показать еще
Node.JS Backend разработчик | DevOps | Team Lead
Стек: Nest.JS, TypeScript, Node.JS, PostgreSQL, TypeORM, S3 в Yandex Cloud, Telegraf, Redis, RabbitMQ, Redis, Kafka.
Разработка API для сети аптек - админ панель, мобильные приложения.
Админка - остатки, управление аптеками, функционал по типу CMS для мобилок (картинки, описание товаров, и т.д.), просмотр заказов, назначение курьеров, управление сотрудниками.
Ролевая система - администратор, фармацевт, курьер, клиент.
Мобильное приложение и веб-сайт - просмотр остатков, корзина, оформление заказов (без оплаты) и бронирование остатков в «ЮНИКО».
Уведомления в Telegram.
Интеграции с WordPress плагинами и CRM системой.
Интеграция с внешним API - «ЮНИКО» (автоматизация фармацевтических компаний) и SMS сервисом (smscenter).
Настройка на отдельной VDS всего CI/CD для веба - nginx, gitlab runner, GitLab CI, все пайплайны, Docker Ansible, прод и пре-прод окружения, сборка и деплой Docker образов бекенда, билд и деплой React проекта, настройка билда webpack, настройка SSL.
Мобильными пайплайнами и деплоями не занимался.
Исполнял обязанности как Backend + DevOps разработчика, так и Team Lead - комплексно управлял командой - общение с заказчиком и его командой разработки, проведение демо презентаций, обсуждение требований бизнеса. Планирование задач, координация синхронной работы команды над одной фичей.
Проектирование архитектуры взаимодействия между мобильными приложениями, сайта на WordPress, CRM панели, админ панели, мобильных приложений и системы «ЮНИКО».
Помимо меня команда - 1 FrontEnd (React), 2 мобильных разработчика - IOS разработчик (Swift) и Android (Kotlin) разработчик.
Март 2020 — Апрель 2021
1 год 2 месяца
Москва
Информационные технологии, системная интеграция, интернет... Показать еще
Node.JS Backend разработчик
Аутстафф компания, на всех проектах работал Node.JS Backend разработчиком (кроме 1 проекта на C# / .NET Framework)
★ Такси Снежок
Февраль 2021 - Апрель 2021
Стек: JavaScript, TypeScript, Node.JS, Express.JS, Sequelize, MSSQL, PostgreSQL, PostGIS (расширение pg для работы с географией), WebSockets (socket.io), geolib, jwt, cron
Рефакторинг API сервиса такси с JS на TS. Пересмотр архитектуры БД, объединение двух MSSQL баз в одну PostgreSQL.
Система включает админку (веб), мобильное приложение заказчика и мобильное приложение водителя.
Уменьшил количество ошибок баз данных на 95% (постоянные рассинхроны баз были, с единой базой почти все проблемы решились).
Оптимизировал вообще все SQL запросы.
Работа с географическими данными и поисками маршрутов.
Ускорение поиска ближайшей машины на 200% благодаря PostGIS и geolib.
Улучшили точность показа ориентировочного времени прибытия водителя («Водитель будет через X минут»).
Состав команды - 1 Backend (я), 1 FullStack разработчик (Vue.JS), 1 мобильный разработчик.
★ РЖД Технологии
Декабрь 2020 - Февраль 2021
Стек: Чистый C# (.NET Framework), 100% покрытие unit тестами MOQ
Разработка кастомизируемых модулей (.dll) для использования в тренажере машинистов.
Чаще всего - модули, создающие какую-то экстренную ситуацию (напр. отказ тормозов, расцепка вагонов, проезд на красный, т.п.), далее проверяющие правильность поведения машиниста - какие действия он принял и за какое время, начисление штрафных баллов.
Полностью кастомизируемое поведение с возможностью менять виды и шансы экстренных ситуаций, начисляемые баллы, время для реакции, лимиты и т.д.
Формирование отчёта и вывод в stdout с оценкой поведения машиниста.
Подобие Event-Driven архитектуры - интеграция с API тренажера машинистов через Делегаты и события C# (почти как Callback и EventEmitter в Node.JS).
★ Российская товарищеская хоккейная лига
Апрель 2020 - Декабрь 2020
Стек: Node.JS, Express, JavaScript, Sequelize, Clickhouse, SQLite, S3 MinIO.
Разработка с нуля API для мобильного приложения, кабинета игрока и судейской админки. Проектирование БД из ≈30 таблиц. Монолитный бекенд.
Разделение прав на игроков, менеджеров команд, судей, администраторов.
Много связанной статистики - сезоны, турниры, соревновательные сетки, матчи, команды, игроки, шайбы, штрафы, очки и т.д, всё вытекает друг из друга.
Возможности кабинетов:
* Вне игры - трансфер игроков, управление командами
* Перед игрой - команда может сформировать и настроить PDF-заявку на участие в игре, выбрать нужных игроков
* Во время игры - админ панель позволяет вести протокол игры в реальном времени, статистика на сайте появляется в режиме реального времени в процессе активной игры.
* После игры - возможность скачать PDF протокол матча (шайбы, пассы, штрафы, время и т.д.).
* Учтена возможность вносить изменения в протокол уже после игры - удалять очки, шайбы, назначать штрафы и т.д.
* Учтена возможность выступления одного игрока за разные команды с сохранением личной и командной статистики
Состав команды - 1 backend (я), 1 frontend, 1 мобильный разработчик (Kotlin), координатор.
Навыки
Уровни владения навыками
Опыт вождения
Права категории B
Обо мне
★ Контакты:
- Telegram: https://t.me/mauzzz0
- GitHub: https://github.com/Mauzzz0
★ Backend-разработчик на Go и Node.JS
- Знание английского на продвинутом уровне - уверенно понимаю разговорную речь во время звонка и обсуждений
- Опыт Node.JS - 5+ лет
- Опыт Golang - 4 года
★ Рассматриваю:
- Backend позиции - на стеке Go или Node.JS.
- iGaming / Gambling / Betting - ок, нейтрально отношусь.
★ Прочий опыт:
- Фронт - опыт работы с React, Vue.JS и Angular.
- Есть опыт разработки на C#, Python.
- Вообще есть опыт комплексного администрирования в веб-сфере - настройки VDS, nginx, SSL, DNS, Docker, Ansible, Docker Swarm, Kubernetes, Lens, GitLab/GitHub Runners, CI/CD пайплайны, сборки webpack / vite, cypress, разбор кода на других языках
- Умею разбираться в сложных системах и ковыряться в легаси вообще на любом языке программирования (Java, Kotlin, C#, PHP, Python)
- Люблю дебажить и умею находить самые нестандартные проблемы
- Для оптимизации работы пользуюсь Cursor, Windsurf, Claude code, Claude, Notebook LM, Perplexity, Deepseek, ChatGPT. Но способен работать и без них.
★ Интересует:
- gRPC - так же только пет-проекты, интересно посмотреть на реальных проектах.
- Люблю метрики, графики, цифры, статистики, показатели, динамики и похожие штуки
★ Различное доп.образование:
- Официальный курс Nest.JS - "Nest.JS Fundamentals"
- "Nest.JS с нуля", "Основы Golang", "Продвинутый Golang" , "Docker + Ansible - с нуля, деплой и управление Swarm" (PurpleSchool)
- "Mastering Node.JS Streams" (Erick Wendel)
- "Продвинутый Frontend. React в Production" (UlbiTV)
- "Professional Typescript" (Борис Черный)
- "Грокаем алгоритмы" (Бхаргава Адитья)
- "Искусство автономного тестирования с примерами на С#" (Рой Ошероув)
- "C# 4.0 The Complete Reference" (Herbert Schildt)
- "Легкий способ выучить Python 3" (Шоу Зед)
Высшее образование
2023
Высшее образование
Институт комплексной безопасности и специального приборостроения, Информационные системы и технологии
Знание языков
Гражданство, время в пути до работы
Гражданство: Россия
Разрешение на работу: Россия
Желательное время в пути до работы: Не имеет значения
