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
Короткая линия опыта
Первые прикладные проекты и e-commerce
(с 2012 г.)Разрабатывал и поддерживал PHP-системы различного назначения: сервисы на заказ, новостные порталы, интернет-магазины, лендинги, сложные модули для CMS
Создал новостной портал на Yii framework с гибкими таксономиями, интеграциями и гранулированным контролем доступа
Поддерживаю и развиваю некоторые проекты уже более 10 лет
Сервисы и e-grocery (платформа Hive)
(с 2019 г.)Полный переход на JavaScript/TypeScript в бэкенде, React — на фронтенде.
Спроектировал и реализовал модульный монолит на AdonisJS с собственной архитектурой плагинов. Это позволило гибко расширять функциональность платформы без усложнения ядра. Разработал множество внутренних npm-пакетов и плагинов для изоляции бизнес-логики.
Интегрировал внешние системы: онлайн-кассы (АтолОнлайн, WebKassa), платежные шлюзы, систему маркировки «Честный знак», системы лояльности торговых сетей (Loymax, SetLoyalty).
Обеспечил надёжную обработку транзакций и соответствие требованиям законодательства.
Node.js разработка, архитектура и system design
(с 2024 г.)Развиваю и внедряю архитектурный подход в существующих проектах. Улучшаю производительность и отказоустойчивость через многопоточность, многопроцессность и выделение в отдельные сервисы.
Фокусируюсь на архитектуре распределённых систем. Проектирую решения с учётом масштабируемости и поддерживаемости, применяю принципы Clean Architecture и тактические паттерны DDD. Предпочитаю легковесные, прозрачные абстракции без излишней «магии».
Активно использую AI-инструменты для генерации кода. Глубокое понимание внутреннего устройства платформ, опыт рефакторинга и поддержки Legacy-кода позволяют эффективно контролировать качество генерируемых решений и поддерживать высокий уровень архитектурной целостности проектов.
Домены и типы задач
E-grocery
Проектирование решений в области гиперлокальной доставки из супермаркетов и дарксторов. Производительные каталоги с штучными и весовыми товарами, нестандартные сценарные интеграции с платёжными системами, облачными кассами (АтолОнлайн, WebKassa), системами лояльности для торговых сетей (Loymax, SetLoyalty, RSLoyalty), службами доставки.
E-commerce
Классические онлайн магазины. Больше всего опыта с Opencart – знаю его исходный код на 90%. Разрабатывал сложные модули и нестандартные темы. Поддерживал живые онлайн магазины. Запускал open source инициативу посвящённую разработке качественных свободных (GPL) модулей для Opencart
Интеграции
Rest API, GraphQL, очереди, обмены данными, синхронное/асинхронное связывание нескольких систем, оркестрация фоновых задач, аккуратная стыковка старых интерфейсов с новыми.
Legacy support
Разбор старого кода, локализация проблем, поэтапная модернизация и приведение системы в поддерживаемый вид. Добавление новых и исправление существующих функций. Поддержка устаревших зависимостей, которые невозможно быстро заменить. Мой подход простой – качественный рефакторинг всегда лучше переписывания с нуля
Что делаю хорошо
- Упрощаю сложные прикладные системы, делая их прозрачными и поддерживаемыми.
- Проектирую проекты с фокусом на функциональность без избыточного усложнения.
- Привожу legacy-проекты к поддерживаемому состоянию.
- Учитываю эксплуатационные аспекты продукта, а не только код.