Fullstack TypeScript разработчик

Кратко о себе

Привет, я Томинов Сергей. Fullstack JavaScript / TypeScript разработчик. Проектирую и собираю прикладные системы, связанные с e-grocery и e-commerce.

Основной интерес сейчас: архитектура распределённых систем с Node.js, system design, программные архитектуры.

Сейчас

Работаю над e-grocery платформой в Hive Software. Разрабатываю архитектуру, ядро и расширения основного Backend монолита, поддерживаю собственные форки устаревших базовых инфраструктурных пакетов, составляю и веду техническую документацию, проектирую новые сервисы с минимизацией vendor lock и core зависимостей. Работаю над унификацией и упрощением работы с распределёнными блокировками и обменом данными.

Опыт

  • Основной стек сегодня: Fullstack JavaScript / TypeScript
  • Ранее: PHP + JavaScript (старая школа – jQuery/Backbone)
  • Запускал собственное digital агентство
  • Разрабатывал собственные и участвовал в open source проектах
  • Применяю Clean architecture

Короткая линия опыта

PHP

Первые прикладные проекты и e-commerce

(с 2012 г.)

Разрабатывал и поддерживал PHP-системы различного назначения: сервисы на заказ, новостные порталы, интернет-магазины, лендинги, сложные модули для CMS

Создал новостной портал на Yii framework с гибкими таксономиями, интеграциями и гранулированным контролем доступа

Поддерживаю и развиваю некоторые проекты уже более 10 лет

  • Yii 1 / 2
  • WordPress
  • Opencart
  • Bitrix
  • jQuery
  • Backbone
  • MySQL/MariaDB
Node.js

Сервисы и e-grocery (платформа Hive)

(с 2019 г.)

Полный переход на JavaScript/TypeScript в бэкенде, React — на фронтенде.

Спроектировал и реализовал модульный монолит на AdonisJS с собственной архитектурой плагинов. Это позволило гибко расширять функциональность платформы без усложнения ядра. Разработал множество внутренних npm-пакетов и плагинов для изоляции бизнес-логики.

Интегрировал внешние системы: онлайн-кассы (АтолОнлайн, WebKassa), платежные шлюзы, систему маркировки «Честный знак», системы лояльности торговых сетей (Loymax, SetLoyalty).

Обеспечил надёжную обработку транзакций и соответствие требованиям законодательства.

  • Express.js
  • AdonisJS
  • React
  • MongoDB
  • PostgreSQL
  • Redis
  • ElasticSearch
  • GraphQL
  • RabbitMQ
Сейчас

Node.js разработка, архитектура и system design

(с 2024 г.)

Развиваю и внедряю архитектурный подход в существующих проектах. Улучшаю производительность и отказоустойчивость через многопоточность, многопроцессность и выделение в отдельные сервисы.

Фокусируюсь на архитектуре распределённых систем. Проектирую решения с учётом масштабируемости и поддерживаемости, применяю принципы Clean Architecture и тактические паттерны DDD. Предпочитаю легковесные, прозрачные абстракции без излишней «магии».

Активно использую AI-инструменты для генерации кода. Глубокое понимание внутреннего устройства платформ, опыт рефакторинга и поддержки Legacy-кода позволяют эффективно контролировать качество генерируемых решений и поддерживать высокий уровень архитектурной целостности проектов.

  • System design
  • Clean/Hexagonal architecture
  • Fastify
  • DDD (tactical patterns)
  • AI-assisted development

Домены и типы задач

E-grocery

Проектирование решений в области гиперлокальной доставки из супермаркетов и дарксторов. Производительные каталоги с штучными и весовыми товарами, нестандартные сценарные интеграции с платёжными системами, облачными кассами (АтолОнлайн, WebKassa), системами лояльности для торговых сетей (Loymax, SetLoyalty, RSLoyalty), службами доставки.

E-commerce

Классические онлайн магазины. Больше всего опыта с Opencart – знаю его исходный код на 90%. Разрабатывал сложные модули и нестандартные темы. Поддерживал живые онлайн магазины. Запускал open source инициативу посвящённую разработке качественных свободных (GPL) модулей для Opencart

Интеграции

Rest API, GraphQL, очереди, обмены данными, синхронное/асинхронное связывание нескольких систем, оркестрация фоновых задач, аккуратная стыковка старых интерфейсов с новыми.

Legacy support

Разбор старого кода, локализация проблем, поэтапная модернизация и приведение системы в поддерживаемый вид. Добавление новых и исправление существующих функций. Поддержка устаревших зависимостей, которые невозможно быстро заменить. Мой подход простой – качественный рефакторинг всегда лучше переписывания с нуля

Что делаю хорошо

  • Упрощаю сложные прикладные системы, делая их прозрачными и поддерживаемыми.
  • Проектирую проекты с фокусом на функциональность без избыточного усложнения.
  • Привожу legacy-проекты к поддерживаемому состоянию.
  • Учитываю эксплуатационные аспекты продукта, а не только код.

Open Source