Специализация и профессиональные навыки:
Принял проект у уходящего разработчика. Начал с попытки перевести проект с архитектуры “сервер на котором крутится все” на архитектуру проекта с разделением по виртуальным серверам.
Роли серверов:
У руководства были планы сделать балансировку между двумя кластерами такой конфигурации и мастер-слейв репликацию с автоматическим переключением. Проект свернули. Конфигурация используется в режиме тестовой среды.
Проект использует Yii2, Yii1 Реализована интеграция с Яндекс.Маркетом. Много интеграции с поставщиками через REST API в режиме pull и push. Есть даже интеграция по FTP :)
Также используется API Яндекса: geocoder, maps.
В настоящий момент к проекту подключено 70 поставщиков, почти 2000 точек продаж, покрыты все крупные города России.
Каждый поставщик - это своя номенклатура, ассоциация проводится каждый раз при получении данных от поставщика.
В проекте много интересной бизнес-логики.
Разработка на стэке php7.1, yii2, mariadb, elasticsearch.
Задача была переписать проект на актуальные технологии. Кодовая база проекта находилась на уровне 2003 года.
+ внедрить поиск на ES
+ локализация (в настоящий момент: английский, немецкий, португальский)
+ возможность работы сайта на нескольких доменов(саттелитов) с настройкой языка, валюты, отображени товаров в каталоге (своя сортировка у сателита, разные склады, бан товаров)
+ продвинутая работа со скидками
+ мониторинг доступности проекта и базовых ресурсов (cron + pushover)
+ админка мониторинга полноты данных, работы cron
Выбрал Yii2 в качестве основы разработки. Бизнес логика проекта, компоненты и слой репозитория написан в фреймворк-агностик стиле. Большая часть компонент и бизнеслогика покрыты юниттестами.
Объём базы 250 тысяч товаров. Требования по доступности 0,5 секунды любая страница сайта. Для достижения производительности использовал префетч данных каталога и фильтров для каждого саттелита.
Развитие техотдела компании от 2 до 100 человек. Навыки системного администрирования, разработки, управления разработкой. Небольшой опыт управления продуктом.