Разработчик Node Js
Марк
Возраст
36 лет (09 Июля 1989)
Город
Москва
Переезд невозможен
Удаленная работа
9 лет 7 месяцев
Информационные технологии / IT / Интернет
Разработал и вывел в production микросервисы на Node.js/NestJS + TypeScript. Фокус — надёжность, тестирование (Jest/e2e) и наблюдаемость (Prometheus/Grafana, Kibana/ELK). Работаю с PostgreSQL, Redis, RabbitMQ, деплой в Kubernetes.
Задачи и достижения:
Спроектировал и реализовал набор из 17ти production-микросервисов в микросервисной архитектуре (в т.ч. auth, ads, chat, notifications, category tree).
Разработал WebSocket-чат: статусы доставки/прочтения, typing-индикаторы; выдерживал до ~10k одновременных подключений в production.
Построил event-driven взаимодействия на RabbitMQ + Redis: outbox, идемпотентность, корректная обработка повторов/сбоев; использовал fire-and-forget там, где не требовались строгие гарантии доставки.
Снизил среднюю задержку API примерно на ~30% за счёт оптимизации запросов, индексов и кеширования; стабилизировал p95.
Повысил надёжность сервисов: проектирование схем PostgreSQL и индексов, (где применимо) репликация, PgBouncer, корректные readiness/liveness probes, graceful shutdown.
Настроил CI/CD в Kubernetes (Docker, Helm, GitLab CI/CD): ускорил релизы ~с 30 мин до <10 мин за счёт безопасных rollout’ов и health-checks.
Внедрил метрики сервиса и бизнес-метрики (Prometheus, Grafana dashboards), централизованные логи (Winston → Elasticsearch/Kibana) для дебага и алертинга.
Реализовал безопасность и доступ: OAuth2/OIDC/JWT, RBAC, хэширование паролей Argon2, ротация refresh-токенов.
Интегрировал внешние сервисы: платежи PayMe, SMS/e-mail Eskiz, geo-сервисы (bbox, IP→address/coords).
Экспортировал snapshots категорий в S3/CDN (AWS/Hetzner), обеспечил O(1) чтение горячих данных из Redis; добавил cron-задачи для обслуживания кеша в Kubernetes.
Поддерживал документацию API в Swagger/OpenAPI, техдок — в Confluence; писал unit и e2e-тесты для критичных сценариев, чтобы релизы проходили безопасно.
Стек / технологии:
Node.js, TypeScript (strict), NestJS, Express/Fastify, REST/GraphQL, Swagger/OpenAPI, WebSockets;
PostgreSQL/MySQL, MongoDB, Redis, Prisma/TypeORM/Sequelize, SQL optimization (indexes, EXPLAIN/ANALYZE);
Message brokers: RabbitMQ, Kafka; Background jobs/queues: Bull/BullMQ;
Docker, Kubernetes (Helm/Ingress), Linux (Ubuntu), Nginx;
CI/CD: GitLab CI/CD, GitHub Actions (Jenkins — базово);
Observability: Prometheus, Grafana, Loki, ELK (Elasticsearch/Kibana), OpenTelemetry — базово;
Cloud/Storage: AWS (EC2/S3/SQS/Lambda), S3-compatible (MinIO/Hetzner), Vault;
Testing: Jest, Supertest (unit/integration/e2e), Testcontainers
Информационные технологии / IT / Интернет
Разрабатывал командные MVP: проектирование API, бизнес-логика, авторизация, интеграции, документация. На одном из проектов делал и фронтенд.
Ключевой проект: каталог фильмов (аналог IMDb) для израильского рынка
Реализовал backend для каталога: фильмы/жанры/поиск/избранное/комментарии, роли и доступы.
Авторизация и безопасность: JWT, хэширование паролей на Argon2, refresh-токены.
Админ-панель/модерация, логирование, обработка ошибок, валидации DTO.
На фронтэнд: React-приложение со страницами авторизации, списка фильмов, избранного, карточки фильма и админ-раздела.
Другие командные MVP (прототипы):
Blue-White Parking Monitoring & Parking Fine — мониторинг парковок, фиксация нарушений/штрафов, роли для оператора и администратора, отчёты.
Computerized Storehouse — складской учёт: приход/расход, остатки, история операций, роли пользователей.
Electric car charging stations — каталог/статусы станций, базовые сценарии бронирования/сессий зарядки, кабинет пользователя.
Medical parameters monitoring — сбор и отображение медицинских параметров, уведомления по пороговым значениям, история измерений.
Стек: Node.js, TypeScript, Express, REST API, MongoDB, Docker, Swagger, Git, AWS, React.
Добыча сырья / Энергетика / ТЭК
Вёл проекты по разработке месторождений, совмещая 3D геологическое моделирование и data-driven аналитику. Координировал работу со смежными подразделениями (бурение, геофизика, разработка, бизнес, IT). Результаты использовались для принятия решений по размещению скважин и планированию разработки.
Основные задачи и результаты
Инициировал и курировал создание внешнего защищённого портала/витрины данных (“внешняя ручка”) для иностранного партнёра по совместному проекту: доступ только к материалам в рамках одного актива/объекта, без доступа к внутренним системам компании.
Сформировал требования к контенту и процессу публикации: оперативные сводки по новым скважинам, актуальные геологические материалы, финальные отчёты, карты/изображения — с контролем состава и версии документов.
Организовал разграничение доступа: ограниченный круг пользователей (≈ до 10), выдача и управление учётными записями/паролями, права на просмотр по ролям/разделам (только “то, что разрешено”).
Обеспечил соблюдение ограничений по безопасности и комплаенсу: публикация материалов только через контролируемый канал, исключение неконтролируемой пересылки документов, согласование с IT/ИБ.
Выстроил операционный процесс: подготовка/проверка материалов, загрузка во внешний контур, актуализация при изменениях, поддержка пользователей партнёра и контроль доступов.
Строил и верифицировал 3D геологические модели с интеграцией фациальных и седиментологических данных, ГИС/керна и 3D-сейсмики; модели применялись для обоснования бурения новых скважин и принятия решений по разработке.
Поддерживал бурение новых скважин (в т.ч. горизонтальных): актуализировал секторные модели по новым данным, контролировал качество модели во времени.
Оценивал качество исходной геофизической/сейсмической информации и инициировал переинтерпретацию совместно с петрофизиками и геофизиками для снижения неопределённости.
Разрабатывал альтернативные геологические концепции, повышающие прогнозируемость моделей и объясняющие фактическое поведение добычи.
Определял контакты ГНК/ВНК на основе ГИС, давлений, испытаний и истории добычи.
Интерпретировал разломы по сейсмическим разрезам и строил структурные/разломные модели для последующей гидродинамической симуляции.
Автоматизировал рутинные части workflow (подготовка данных, сценарные прогоны, сбор входных данных), сократив время на типовые операции и ускорив подготовку многосценарных расчётов.
Совместно с IT интегрировал инструменты моделирования и источники данных; оптимизировал лицензирование и затраты на ПО примерно на ~$35k/год на команду.
Вёл кросс-функциональную поставку: объём работ, сроки, ключевые стейкхолдеры; связывал технические результаты с экономическими целями проектов разработки.
Обучал младших специалистов; презентовал и защищал результаты/сценарии разработки перед руководством и внешними партнёрами (в т.ч. Equinor).
Готовил технические отчёты и материалы для заказчика.
Высшее
Уфа, 2006 — 2011 гг.
Английский — Разговорный
12 августа, 2016
Игорь
Город
Москва, м. Перово
Возраст
31 год (18 июня 1994)
Опыт работы:
4 месяца
Последнее место работы:
Специалист технической поддержки, Такском
01.2015 - 05.2015
22 августа, 2016
Александр
Город
Москва local_shipping
Возраст
30 лет (24 апреля 1995)
Опыт работы:
Без опыта
22 августа, 2016
20 000 руб
Элчин
Город
Москва, м. Тропарёво
Возраст
32 года (23 апреля 1993)
Опыт работы:
Без опыта
Резюме размещено в отрасли