PHP разработчик
Миддл • Сеньор
Релокация • Удаленная работа • Частичная занятость • Работа в офисе
Опыт работы какой-то есть
Опыт работы какой-то есть
Короткая ссылка: gkjb.ru/g1C71
О себе
4. Freelance
На данный момент PHP разработчик.
Мои компетенции и опыт
Senior Backend Engineer, специализирующийся на PHP, с опытом создания и масштабирования высоконагруженных распределённых систем в сфере гейминга и беттинга. Имею опыт проектирования микросервисов, оптимизации производительности backend-систем, реализации асинхронной обработки и повышения надёжности систем. Обладаю прочной базой в области конкурентного программирования на Go, интеграций на основе Kafka и RabbitMQ, оптимизации баз данных, observability, а также миграции монолитных приложений в масштабируемые сервис-ориентированные архитектуры.
Места и проекты:
1. Marfatech (окт нужен доступ к резюме наст. вр.) PHP - разработчик
- Разрабатывал backend-сервисы для высоконагруженной онлайн-гейминговой платформы, обслуживающей несколько казино-брендов.
- Рефакторил пайплайн обработки запросов, внедрив конкурентное выполнение с использованием горутин, передачи контекста (context propagation) и errgroup, что снизило среднюю задержку ответа на ~25-35% для высоконагруженных эндпоинтов.
- Реализовал внутренний пул воркеров (worker pool) для некритичных асинхронных задач, предотвращая блокировку запросов и защищая нижестоящие сервисы от перегрузки, при этом снизив пиковую утилизацию ресурсов на ~30%.
- Разрабатывал и поддерживал сервисы Billing и Engagement, обрабатывающие ~10K транзакций/день и пользовательские события, внедрял новый бизнес-функционал, непрерывно улучшая существующую функциональность.
- Мигрировал бизнес-логику из модульного PHP-монолита в микросервисы на Go, разделяя бизнес-домены и улучшая владение сервисами (service ownership), поддерживаемость и независимость релизов сервисов.
- Оптимизировал получение игровых сессий за счёт внедрения кэширования на Redis и оптимистичных блокировок (optimistic locking), снизив нагрузку на базу данных на ~40% и предотвратив конфликты при конкурентном доступе к сессиям.
- Реализовал интеграцию Kafka-продюсера для Smartico CRM, включая публикацию сообщений, обработку сбоев и надёжную доставку событий, обеспечив асинхронное взаимодействие между гейминговой платформой и CRM-системой.
- Проектировал запросы Elasticsearch для персонализированных рекомендаций игр и специфичных для бизнеса правил сортировки. Реализовал кастомные анализаторы Elasticsearch для сложных требований поиска игр.
- Оптимизировал сложные MySQL-запросы, декомпозируя дорогостоящие JOIN-операции на более простые запросы, что снизило время выполнения для высоконагруженных эндпоинтов.
- Внедрил инструментирование OpenTelemetry для backend-сервисов, улучшив трассировку запросов и упростив расследование проблем в production.
- Писал unit- и интеграционные тесты для backend-сервисов, покрывающие бизнес-логику, API-обработчики и взаимодействие с базой данных.
- Технический стек: Go, Fiber, Gin, PHP, Symfony, JavaScript, TypeScript, React, MySQL, Redis, Kafka, RabbitMQ, Elasticsearch, ClickHouse, WebSockets, Grafana, Graylog, Jira, Confluence, Docker, Kubernetes, Rancher, OpenTelemetry, Victoria Metrics, REST API, gRPC, GitLab CI/CD, Rancher, Claud, Codex
2. NovaBev Group / Winelab (сент нужен доступ к резюме окт нужен доступ к резюме PHP - разработчик
Ведущий разработчик кастомной разработки. Сеть супермаркетов NOVABEV GROUP (выручка ~168 млрд ₽).
Winelab ecom BFF (Laravel → SAP Hybris)
- Дорабатывал BFF витрины: контракты и Guzzle-клиенты к Hybris, кэш ответов (Redis), Laravel Octane.
- Эндпоинты главной и брендов (баннеры), персональная цена, каталог (в т.ч. композиция источников), корзина/чекаут, лояльность, ваучеры, начисления по чекам.
- Покрыл прокси feature-тестами и e2e к Hybris (ваучеры и критичные сценарии), чтобы ловить регресс контракта
Бонусный процессинг
- Админка лояльности (Laravel, LDAP/JWT): карточка клиента, покупки, чеки, история бонусов.
- Интеграция с SET10 Loyalty: начисление, списание, возврат, блокировка, сгорание, пролонгация — фильтры и сверка для операторов, без прямого доступа в кассовый контур.
Система управления рекламой на кассах (~4 000 устройств)
- Разделил Laravel-монолит на микросервисы: UCS (ядро, админка, плейлисты, SLA, мониторинг), CDS (доставка по SSH: ping, файлы, reboot), VGS (FFmpeg, ролики Full/Sell, выкладка в S3/MinIO). VGS многопоточная генерация. CDS многопоточный механизм доставки конента.
- Связал сервисы через Kafka (send-task / generate-video inbox→outbox): асинхронная доставка задач на кассы и обратно статус в ядро.
- MVP по регионам РФ: разные конфиги/расписания, плейлисты «на завтра», заглушки, ночной reboot.
- Посчитал канал и мощности Yandex Cloud под SLA доставки роликов на кассы — чтобы уложиться в окно и не переплатить за VM/трафик.
- Документация и передача контура инфраструктуре (воркеры, cron, топики, SSH, S3).
- LDAP + JWT (AD), 2FA через Multifactor - единый вход внутренних пользователей.
Стек: PHP, Laravel, Symphony, Go, Gin, Git, Kafka, Graylog, React, LDAP, AD, REST API, JWT, SSO, JS, TS, SOLID, KISS, DRY, FFMPEG, MULTIFACTOR, GITLAB, VPN, Cisco, SSH, PostgreSQL, MSSQL, Cache, Redis, Docker, Kubernetes, Linux, Ububntu, Jira, Confluence, Composer, Package Registry, CI/CD, Minio, S3, Unit Tests, Microservices, XDebug, Clickhouse, Nginx, Hybris, Swagger, Yandex Cloud, S3
3. Qsoft (фев нужен доступ к резюме сент нужен доступ к резюме Fullstack PHP / GO разработчик
Проект: АптекиПлюс - крупная российская онлайн-сеть аптек с более чем нужен доступ к резюме торговых точек.
Разработка и развитие e-commerce платформы на базе микросервисной архитектуры. Работал преимущественно с сервисом управления остатками товаров (Stock), а также с каталогом, категориями, поиском и интеграциями с внешними системами.
Основные задачи и достижения:
- Разрабатывал и поддерживал микросервисы на PHP распределённой архитектуре, включая Stock (остатки товаров), Master (каталог и категории), Retail (торговые точки), Notification, Auth и User.
- Вел разработку сервиса Stock на Go (Gin): реализовывал команды агрегации остатков товаров, интеграции с другими микросервисами через Kafka и REST API, обеспечивал обмен данными и документировал контракты и сценарии взаимодействия между сервисами.
- Реализовал синхронизацию дерева товарных категорий через Kafka и их хранение в PostgreSQL с использованием расширения ltree. Интегрировал работу с иерархией через специализированный пакет и реализовал отображение вложенного дерева категорий на нужен доступ к резюме
- Писал сложные поисковые запросы и агрегации в Elasticsearch для товарной выдачи и функциональностей «Получить сегодня», «Акционные товары», «Уценённые товары», а также фасетной фильтрации по цене, производителю и категориям.
- Развивал систему фильтрации каталога: реализовывал новые фильтры по форме выпуска и аптекам, а также их отображение и бизнес-логику на фронтенде с использованием нужен доступ к резюме
- Разработал блок «Наличие в аптеках» в карточке товара: выбор аптек для заказа, отображение ближайшей даты доставки, учёт доступности товара для заказа и географический поиск ближайших торговых точек.
- Реализовал интеграцию с платёжным провайдером YooKassa, включая оформление возвратов по отдельным товарам в заказе.
- Выполнял миграцию функциональности и сущностей из исторического сервиса Master в отдельные доменные сервисы, в том числе для отзывов и географических точек. Обеспечивал межсервисное взаимодействие через gRPC и API.
- Интегрировал обмен данными о товарах с внешним сервисом партнёра через SOAP, документировал интеграционные контракты и сценарии взаимодействия.
- Разрабатывал и поддерживал интерфейсы интернет-магазина: фасетные фильтры, модальные окна выбора аптек и навигацию по дереву категорий. Работал с SEO-метаданными, корректностью URL и отображением дат.
- Работал в команде по Agile/Kanban: участвовал в разработке, сопровождении и развитии микросервисной платформы, взаимодействовал с командами смежных сервисов.
- Стек: PHP, Laravel, Go, Gin, нужен доступ к резюме , Nuxt 3, JavaScript, PostgreSQL, ltree, Elasticsearch, Kafka, gRPC, REST API, SOAP, Redis, RabbitMQ, Protobuf, Docker, Kubernetes, Rancher, GitLab CI/CD, ELK, Graylog, Grafana, Unit Testing, Swagger, Confluence, Agile/Kanban, Kracked, Redis
Проект: Yorcom - интернет-магазин диванов и мягкой мебели
Главный разработчик - полный цикл: архитектура, CRM, API, интеграции, CI/CD
- Спроектировал архитектуру «админка + API + отдельный frontend»: CRM на Inertia/Vue 3, витрина на нужен доступ к резюме с ISR/SSR и on-demand revalidate карточек, главной и каталога — страницы отдаются как статика, контент обновляется очередями после правок в админке.
- Полностью закрыл товарный контур в CRM: категории, продукты и варианты, материалы/цвета/тона, произвольные характеристики, группировка SKU, комплекты и «похожие товары».
- Сделал загрузку медиа в Yandex Object Storage: сжатие в WebP (оригинал + preview), видео/GIF, drag-and-drop порядок, привязка фото к продукту и к варианту (ткань/цвет).
- Реализовал блочный rich-контент карточки товара (логика как у Ozon): набор виджетов, черновики, превью, публикация в карточку.
- Собрал фасетные фильтры каталога: цена, категория, тон, материалы, габариты, доп. размеры, параметры + сортировка (цена, новизна, популярность) с учётом цены группы пользователя.
- Вывел разные прайсы для розницы и опта: группы пользователей, свои цены на варианты, скидки (заказ / группа / купон / накопительные), избранное и корзина (в т.ч. для гостя).
- Настроил auth между доменом и поддоменом: Laravel Sanctum, cookie authorization, SMS-код (Exolve), email и OAuth (VK, Яндекс, Google, Одноклассники), Google reCAPTCHA, раздельная регистрация физлица и юрлица.
- Интегрировал оплату: ЮKassa, эквайринг Тинькофф, рассрочка Тинькофф Кредит.
- Интегрировал доставку крупногабарита с предварительным расчётом: СДЭК, Деловые линии, Яндекс Доставка (тарифы, ПВЗ, интервалы, расчёт корзины). Адрес - Яндекс Геокодер.
- Собрал воронку заказа для менеджера: статусы (новый → согласование → склад → доставка / возврат), кастомные представления списка заказов, журнал действий (остатки, правки, входы), RBAC (Spatie).
- Реализовал лояльность: бонусы % от заказа, потолок списания, транзакции, сгорание; отзывы с оценкой и рейтингом в карточке; рекомендации (related + комплекты).
- Ускорил каталог: Redis-кэш тяжёлых выборок (категории/витрина), очереди на revalidate и фоновые задачи.
- Поднял инфраструктуру: Docker (app/nginx/redis), GitLab CI (сборка образа, деплой), бэкапы (Spatie), дашборд посещаемости через Google Analytics Data API.
- Стек: PHP, Laravel, нужен доступ к резюме , Vu3, PostgreSQL, Redis, Docker, GitLab CI, нужен доступ к резюме (ISR/SSR витрины), Yandex Object Storage (S3), Sanctum.
4. Freelance
a) Большая перемена / Движение первых (Fullstack PHP / GO)
- Спроектировал low-latency Game API на Go/Fiber (fasthttp, prefork): прохождение сценариев и вопросов с pers-user lock, Redis-очередями и MongoDB - чтобы пик конкурса не упирался в PHP-монолит.
- Сделал экспортные отчёты по тестовым этапам (логика / «горизонт») в CSV для оргкомитета полуфинала и финала и отдал их в основной бэкенд по внутреннему API.
- Реализовал поиск пользователей в админке на Sphinx (реальтайм-индекс): фильтры по ФИО, email, роли, конкурсу, школе и статусам верификации - без полных сканов PostgreSQL.
- Оптимизировал тяжёлые выборки участия и админские выгрузки: native SQL, курсорный CSV пачками, индексы под конкурсы, роли и статусы участия.
- Интегрировал внешний контур тестирования Profline/МГУ в конкурсные этапы (создание сессии, колбэки, попытки, локи) и подключение Антиплагиата к проверке работ.
- Собрал аналитические выгрузки для админки: персональные данные, баллы, этапы, команды, тесты, эссе - для разбора полуфиналов и финалов.
- Настроил Kafka-шину между Большой переменой, Движением первых и озером данных: изменения профиля, теги, регистрация, участие, удаление, синхронизация школ и муниципальных образований (retry и алерт при сбое).
- Разработал игровой API на Go (Fiber, MongoDB, Redis, per-user lock) под пиковые прохождения сценариев и тестов; выгрузки результатов логики/горизонта для полуфинала и финала забирает основной Symfony-бэкенд.
- Поднял единый OAuth2-сервер на домене платформы: вход без повторной аутентификации в кабинет, игру и сервисы партнёров (Движение первых; другие клиенты - по OAuth redirect).
- Разбирал прод-инциденты: SSR-лендинг ( нужен доступ к резюме ) за несколькими репликами и nginx/LB (keep-alive/upstream), срывы выгрузок, неверные статусы участия в конкурсах, мероприятиях и тестах.
- Стек: Go, Fiber, PHP, Symfony, Laravel, React, нужен доступ к резюме , JavaScript, TypeScript, REST, Swagger, Docker, Nginx, PostgreSQL, MongoDB, MySQL, Redis, Kafka, Elasticsearch, Sphinx, OAuth2, JWT, GitLab CI, Jira, Confluence
b) Collect Group / Collect & Pay / Collect & Exchange (PHP)
- Переписал Collect & Pay с legacy на отдельный Laravel-сервис (DTO, репозитории, контракты): счета, валюты, онбординг компаний и source of funds.
- Реализовал полный lifecycle deposit / exchange / withdraw: расчёт комиссии (% + fixed), лимиты, статусы Pending → Approve/Reject/Done и резервирование средств через on_hold, чтобы нельзя было дважды потратить баланс до решения compliance.
- Собрал админский контур подтверждения операций (документы на S3, статусы файлов, approve/reject менеджером) и журнал транзакций.
- Добавил крипто-провайдеры ETH, Bitcoin, BSC и TRON: персональные депозитные адреса, QR, учёт tx hash.
- Интегрировал on-chain Wallet Factory по ABI (createWallet, batchCreateWallets, checkBalances) через нужен доступ к резюме и TronAPI - выпуск адресов и сверка балансов ERC-20 / TRC-20 без кастодиального «ручного» учёта.
- Расследовал прод-инцидент: USDT (TRON) зависли на смарт-контракте (~$25k); совместно с регулятором вернули клиенту большую часть суммы и усилили контроль вывода (multi-admin crypto approval).
- Подключил Sumsub KYC (токены, webhook, статусы клиента) как обязательный слой до финансовых операций.
- Закрыл finding PCI DSS по загрузке файлов: whitelist типов, хранение на S3 вне приложения, без исполнения загруженного контента.
- Интегрировал Mailgun (транзакционные письма) и Coinbase rates с кэшем пар (hot 5 мин + reserve на отказ API).
- Добавил 2FA по TOTP с QR для кабинета.
- Стек Backend: PHP, Laravel, Laravel Nova, REST API, JWT, OpenAPI/Swagger, Percona / MySQL, Redis, Nginx, Docker, Portainer.
- Стек Frontend: React, TypeScript, нужен доступ к резюме , Tailwind CSS, shadcn/ui, Zustand, React Hook Form, Zod.
- Интеграции: AWS S3, Mailgun, Sentry, Sumsub, Coinbase, Tron / EVM / Bitcoin.
- Auth: 2FA TOTP, CASL (office).
c) ООО Поставлено Софт (Fullstack PHP / Go)
Сервис аналитики и рекомендаций по поставкам остатков на склады Wildberries и Ozon (FBO): учёт остатков, заказов, продаж и расчёт, куда и сколько везти.
- Разрезал монолит на REST API (JWT + OpenAPI/Swagger) и Vue-клиент: кабинет, онбординг проекта, расчёт поставок и аналитика ходят в backend по API, а не через серверный HTML
- Собрал ЛК расчёта поставок на AG-Grid: настраиваемые колонки, кластеры/округа, рекомендации по SKU, сценарии «производство» и «поставка» для WB и Ozon.
- Добавил метод «Гео-расчёт» рядом с «Заказы складов»: распределение заказов по регионам и скорости доставки, чтобы считать поставки на новые склады, которых нет в истории отгрузок.
- Закрыл контур B2B: регистрация, логин (телефон, SMS, Telegram), создание проекта и токенов маркетплейса, прогресс первой синхронизации кабинета.
- Интегрировал AmoCRM: лид и контакт после регистрации, двусторонняя синхронизация активности клиента, webhook’и и заявки на восстановление доступа.
- Перенёс админку на шаблон Geeks, вынес базовые UI-компоненты (формы, таблицы, модалки) и pulpit мониторинга: логи, джобы, склады/кластеры, токены MPSTATS, remote-запуск синков, вход от лица пользователя.
- Перевёл узкое место сбора данных с API маркетплейсов и парсингов в Go-воркеры (конкурентные запросы, чанки, очереди): синхронизация остатков, заказов, продаж, складов и тарифов WB/Ozon плюс статистика MPSTATS - без блокировки PHP-монолита.
- Вынес общую конфигурацию между кабинетом и админкой: логирование, шифрование токенов API маркетплейсов, склады и округа, impersonation.
- Покрыл тестами расчёт поставок (формулы доставки/конверсии) и ключевой сценарий запуска кабинета; агрегации по остаткам/заказам/продажам - чтобы тяжёлые выборки не считались «в лоб» на каждую рекомендацию.
- Реализовал посадочную страницу сайта в соответствии с дизайном
- Стек: PHP, Laravel, Go, Vue, Pinia, Vue Router, AG-Grid, JWT, Redis, Swagger/OpenAPI, AmoCRM, Docker
d) ООО Геосервис (PHP)
Мониторинг транспорта и инструментов
Стек: PHP, Symfony, API Platform, Vue, Leaflet, MySQL, Docker, Traefik, Wialon, JWT
- Спроектировал backend мониторинга транспорта и инструментов: компании, ТС, сотрудники, геозоны, GPS-трекеры, материалы, техосмотры.
- Интегрировал Wialon: синхронизация юнитов, телеметрия по расписанию, группы, трейлеры/прицепы, контроль пропажи сообщений с устройств.
- Реализовал учёт инструментов и BLE-меток: выдача/снятие с сотрудника и инструмента, активация маяков, привязка к Wialon.
- Собрал карту и геозоны на Leaflet (включая draw/KML/clustering) и REST через API Platform + JWT.
- Добавил time tracker, синхронизацию пробега и сервисные интервалы ТС; уведомления по почте.
Штрафы и аналитика
Стек: PHP, Symfony, Vue, MySQL, Redis-кэш отчётов, Docker, Platon, ГИБДД, Wialon, Telegram, Excel
- Реализовал контур штрафов: импорт из ГИБДД Online, Паркоматика и Платон, дедупликация по постановлению и ТС, статусы оплаты, координаты нарушения.
- Собрал аналитику по парку: дашборд (диаграммы/графики), топ ТС по штрафам, кэш тяжёлых отчётов, выгрузка в Excel.
- Интегрировал Платон / федеральные дороги: синхронизация начислений и детализации, разбор ошибок API, фоновая обработка через Messenger.
- Настроил ежедневный сбор статистики по штрафам и алерты в Telegram при сбоях импорта и генерации отчётов.
- Связал штрафы с объектами мониторинга (госномер / Wialon unit) и отчётами по поездкам для сверки пробега и платных дорог.
Заправочная станция
Стек: PHP, Symfony, Vue 3, TypeScript, Vite, Tailwind, MySQL, Docker, JWT, DomPDF, нужен доступ к резюме
- С нуля спроектировал и реализовал систему управления АЗС: станции, резервуары, колонки, пистолеты, смены операторов и кассовые операции.
- Реализовал полный контур продаж топлива: розница, опт/дилеры, талоны, оплаты, статусы смены (открытие → показания пистолетов → инкассация).
- Собрал склад и закупки: приёмка, уровни резервуаров (dipping), перекачка между танками, сверка остатков и инвентаризация.
- Добавил HR-контур станции: сотрудники, посещаемость, зарплаты, отпуска, займы, уровни должностей.
- Сделал печать чеков, штрихкоды, PDF/Excel-отчёты и дашборды по выручке и марже.
- Вынес API (DTO + статусы сущностей) и фронт на Vue 3 / TypeScript / Tailwind с нуля, с JWT и ролевой моделью.
Общий стек: PHP, Symfony, JavaScript, Vue, TypeScript, Vite, Bootstrap, Tailwind, Leaflet, Pinia, Vuex, Axios, нужен доступ к резюме , JWT, Swagger, API Platform, Messenger, Scheduler, Mailer, Graylog, Telegram, PhpSpreadsheet, DomPDF, Docker, MySQL, Nginx, Traefik, Supervisor, GitLab CI, ProxySQL, reCAPTCHA, Postman
e) нужен доступ к резюме / Genshindrop (Fullstack PHP)
- Реализовал полный цикл открытия кейсов (Vue + Laravel API): кэш состава кейса, Redis-lock против гонок и кулдаун повторного открытия.
- Спроектировал ежедневные раздачи с случайным выбором победителей и исключением недавних выигрышей; списки раздач, участников и join вынес в Redis, чтобы выдерживать пики участия без постоянных тяжёлых запросов в БД.
- Вынес ключевые пользовательские сценарии из JSON-в-HTML в REST-контракт (раздачи, инвентарь, обмен, открытие кейсов) совместно с фронтендом - без полной переписки монолита.
- Реализовал обмен игровых предметов на сайте (API, блокировки, комиссия), чтобы увеличить удержание аудитории после дропа.
- Собрал в админке шаблоны и пресеты наборов призов для раздач и квестов, сократив ежедневную ручную сборку акций.
- Расширил платёжный контур: единый слой MultiPay и подключение дополнительных PSP (карты, e-wallet, crypto) с админкой способов оплаты.
- Написал отдельный Laravel-сервис Telegram-ботов с long polling и очередями для GenshinDrop и нужен доступ к резюме : уведомления о выигрышах, привязка аккаунта, верификация и коммуникации.
- Поднял stage-окружение и GitLab CI для сборки Docker-образов и деплоя; вынес логи ботов в централизованный Graylog (GELF).
- Покрыл feature/functional-тестами раздачи, обмен, депозиты и выводы.
- Собрал блог на Strapi + Nuxt и поиск по контенту на Meilisearch; инфраструктуру (Nginx, Meilisearch, Supervisor, fail2ban) описал Ansible-playbook’ами.
- Стек: PHP, Laravel, JavaScript, Vue, jQuery, Livewire, Nuxt, Strapi, Meilisearch, OpenSearch, Graylog, MongoDB, Docker, MySQL, MariaDB, Nginx, Redis, S3, Minio, Cloudflare, Telegram, AdminLTE, GitLab CI, Ansible, Supervisor, Notion, Nginx
