10 задач, которые были вызовом.
Это не список всех проектов — это разбор конкретных сложных ситуаций: в чём была проблема, что я сделал, к чему это привело. Часть проектов под NDA — детали обсуждаемы на созвоне.
Что делает эту страницу особенной
Любой может сказать «у меня 280 проектов». Здесь — разбор того, где было реально трудно: как я находил решение, что делал, к чему это привело. Это ответ на вопрос нанимателя: «а он умеет решать сложные задачи или только делать простое?»
Как читать кейсы
Проблема
В чём была сложность
Решение
Что я сделал
Результат
Что получилось
ГК Эксперт • Python + PostgreSQL + PACS • 2023–2024
⚠️ Проблема
База данных на 9+ млн DICOM-записей в PostgreSQL. Медицинский атлас требовал выгрузки и обработки данных с PACS-серверов, но стандартные запросы работали по 30+ секунд. Часть снимков была повреждена или в устаревших форматах. Нужна была утилита, которая работает стабильно с такими объёмами.
🔧 Решение
Написал Python-утилиту на pydicom + psycopg2: работа с БД через курсоры и чанки (не гружу всё в память), оптимизировал SQL-запросы и добавил нужные индексы, реализовал обработку повреждённых файлов без падения скрипта. Логирование через logging — видел, что происходит на каждом этапе. Обработка через генераторы — минимальное потребление RAM.
✅ Результат
Утилита стабильно работает с базой на 9+ млн записей. Время выборки сократилось с десятков секунд до приемлемого. Обработка 8+ млн снимков для медицинского атласа atlas-xray.expert без сбоев. Автоматизировал рутину, которая раньше делалась вручную.
romantic.ua • WordPress ×3 → Yii2 • Сохранение SEO-адресации
⚠️ Проблема
Три отдельных WordPress-сайта с пересекающимся контентом, разными структурами URL и своими SEO-позициями. Нужно было объединить их в один сайт на Yii2 — без потери поискового трафика. Любая ошибка в адресации = потеря позиций, накопленных годами. Плюс — перенести все данные: товары, статьи, категории, пользователей, изображения.
🔧 Решение
Составил полную карту URL всех трёх сайтов и спроектировал единую структуру нового сайта. Настроил 301-редиректы со старых URL на новые — каждый адрес сохранил свой вес. Парсером вытащил контент из трёх WordPress, нормализовал данные и залил в Yii2. Сохранил все мета-теги, canonical, sitemap. Мониторил индексацию после переезда. Параллельно — разработка нового сайта на Yii2 с нуля.
✅ Результат
Три сайта объединены в один на Yii2. SEO-трафик сохранён без просадки — 301-редиректы и правильная структура сработали. Позиции в поиске удержаны. Клиент получил один управляемый сайт вместо трёх разрозненных.
Личные проекты • JavaScript, Chrome Extensions API
⚠️ Проблема
Gust Staging Switcher: при работе над сайтами постоянно нужно было переключаться между prod и staging-доменами, сохраняя текущий URL. Руками — долго и с ошибками.
Gust Form Filler: заполнение карточек товаров в магазинах — рутина на десятки полей. Каждый раз одно и то же.
🔧 Решение
Gust Staging Switcher: расширение для Chrome, которое автоматически определяет текущий домен (prod/staging) и одним кликом открывает зеркальную страницу с сохранением пути и всех параметров. Настраиваемые правила для разных проектов.
Gust Form Filler: расширение для быстрого заполнения товаров в админках магазинов. Шаблоны полей, автозаполнение по нажатию, поддержка разных CMS.
✅ Результат
Оба расширения используются в реальной работе. Переключение prod/staging — мгновенно, без ошибок. Заполнение товаров — в разы быстрее. Инструменты экономят часы рутины.
Личный проект • Парсеры + Yii2 • Статистика и аналитика
⚠️ Проблема
Данные о футбольных матчах разбросаны по разным сайтам: результаты, статистика игроков, коэффициенты букмекеров. Руками собирать — невозможно. Нужна была система, которая автоматически парсит несколько источников, нормализует данные и позволяет строить собственную статистику и прогнозы.
🔧 Решение
Разработал систему парсеров на PHP (Yii2) для нескольких источников: каждый парсер отвечает за свой сайт, приводит данные к единому формату и сохраняет в БД. Настроил регулярный сбор по cron. Написал слой аналитики: расчёт статистики, агрегация, экспорт отчётов. Обработка дублей, конфликтов данных, неполных записей.
✅ Результат
Агрегатор собирает данные с нескольких источников автоматически, статистика считается по своим алгоритмам, отчёты экспортируются. Ручной сбор данных полностью автоматизирован.
Интернет-магазин кофе • Самописка → Yii2 • Сохранение адресации
⚠️ Проблема
Интернет-магазин кофе работал на старой самописке. Код сложный, поддержка дорогая, добавить новый функционал — боль. При этом сайт хорошо ранжировался в поиске — терять позиции нельзя. Нужно было перенести всё на Yii2 с полным сохранением адресации и SEO-метрик.
🔧 Решение
Собрал карту всех URL старого сайта, спроектировал структуру на Yii2 с сохранением ЧПУ. Разработал новый магазин с нуля: каталог, корзина, оформление, личный кабинет. Все данные (товары, категории, пользователи, заказы) перенёс без потерь. Настроил 301-редиректы со старых URL на новые. Сохранил мета-теги, микроразметку, sitemap. Мониторил индексацию и позиции после переезда.
✅ Результат
Магазин перенесён на Yii2 с сохранением позиций и трафика. Поддержка и развитие стали проще, новые фичи добавляются быстро. SEO-трафик остался на прежнем уровне, позиции удержаны.
Фенек • Yii2 • 2012–2015
⚠️ Проблема
Обменник криптовалют и электронных валют с 7+ платёжными системами (ЮKassa, QIWI, WebMoney, Robokassa и др.). Каждая — со своим API, форматами callback, логикой подтверждения платежа. Нужно было сделать единый механизм обработки транзакций, при котором ни одна копейка не потеряется — даже при сбоях платёжек или обрывах сети.
🔧 Решение
Спроектировал единый слой абстракции над платёжными системами (каждая — свой адаптер). Реализовал очередь транзакций с идемпотентностью — повторный callback не создаёт дубль. Двухфазное подтверждение: сначала резерв, потом финализация. Логирование всех операций + верификация статуса через API платёжки, если callback не пришёл. Автоматическая выдача валюты после подтверждения.
✅ Результат
Обменник стабильно обрабатывал транзакции без потерь. Даже при падении одной платёжной системы — остальные работали. Рекуррентные платежи, история операций, автовыдача — всё работало автоматически. Проект жил несколько лет.
Фенек • Yii2 • 2013–2016
⚠️ Проблема
Международный обменник с интеграцией западных платёжных систем, мультивалютностью и KYC-верификацией. Сложность — в работе с несколькими юрисдикциями: разные требования к верификации, разные форматы платежей, разные часовые пояса. Плюс — рекуррентные операции и сложная логика курсов.
🔧 Решение
Интеграция с западными платёжными системами через единый слой абстракции. Реализация KYC-верификации (сбор документов, проверка, статусы). Мультивалютность с динамическими курсами и фиксацией на момент транзакции. Рекуррентные платежи и подписки. Логика комплаенса под разные юрисдикции. Автоматическая обработка сбоев и ретраев.
✅ Результат
Международный обменник работал с реальными пользователями из разных стран. KYC-верификация, мультивалютность, рекуррентные платежи — всё стабильно. Проект жил несколько лет на международном рынке.
my.rustv.online • Next.js • США • Личный проект
⚠️ Проблема
Стриминговый сервис на рынке США нуждался в личном кабинете для подписчиков: управление подпиской, история просмотров, биллинг, интеграция с несколькими системами. Фронтенд на Next.js + интеграция с backend-сервисами сервиса. Нужно было работать с американскими платёжными системами и часовыми поясами.
🔧 Решение
Разработал личный кабинет на Next.js: SSR для SEO-страниц и быстрой загрузки, авторизация, управление подпиской, история просмотров, смена тарифа. Интеграция с backend-сервисами сервиса через REST API. Работа с американскими платёжными системами. Корректная обработка таймзон и локальных форматов.
✅ Результат
Кабинет работает для американских пользователей стримингового сервиса. Управление подпиской, история, биллинг — всё стабильно. Интеграция с backend сервиса работает без сбоев.
Промышленные предприятия ×3 • Yii2 • 2015–2019
⚠️ Проблема
Три разных завода — три разных ТЗ. Каждый завод работал по-своему: своя логика учёта производства, свои процессы склада, свои отчёты для руководства. Готовые ERP не подходили — нужна была кастомная система под каждый завод с учётом их специфики. Плюс — интеграция с 1С и складским оборудованием.
🔧 Решение
Для каждого завода — своя ERP на Yii2 с нуля, по их ТЗ. Учёт производства, склад, логистика, отчётность, роли и права, workflow-согласование. Интеграция с 1С (обмен товарами, заказами, остатками). Подключение к складскому оборудованию. Кастомные отчёты под каждое предприятие. Обучение сотрудников и поддержка.
✅ Результат
Три завода получили свои ERP-системы, работающие под их процессы. Учёт производства автоматизирован, отчётность для руководства — в реальном времени. Интеграция с 1С и оборудованием работает стабильно. Проекты жили несколько лет.
Фенек • Yii2 + Stripe • 2016–2018
⚠️ Проблема
Сервис оплаты кабельного ТВ для американского рынка. Интеграция со Stripe, рекуррентные платежи, личный кабинет, автоплатежи, история подписок. Сложность — в различиях между российскими и западными платёжными стандартами: PCI DSS, требования Stripe к потокам платежей, обработка отказов и возвратов, работа с таймзонами.
🔧 Решение
Полная интеграция Stripe: Stripe Checkout + Stripe Subscriptions для рекуррентных платежей. Webhooks для обработки всех событий (успех, отказ, возврат, отмена подписки). Идемпотентность платежей. Личный кабинет с историей, управлением подпиской, привязкой карты. Логика ретраев при отказах. Учёт таймзон и локальных требований.
✅ Результат
Сервис работал с реальными американскими клиентами. Рекуррентные платежи, автоплатежи, обработка отказов — всё стабильно. Проект жил несколько лет на рынке США.
Legacy без документации, самописки, чужие проекты — не пугаюсь. Сначала понимаю, потом меняю.
9+ млн записей в БД, транзакции в финтехе, marketplace с реальными пользователями — не боюсь объёмов.
Сохранение SEO при миграции, 301-редиректы, перенос данных без потерь. SEO-трафик не просаживается.
Не «попробовал и не получилось», а «сделал, работает, клиент доволен». Ответственность за результат.
Неверович Владимир Сергеевич
Если у вас есть сложный проект, от которого отказываются другие — напишите. Разберусь.