Александр Соловьев

Бэкенд-разработчик

Пишу серверную часть веб-приложений на PHP и Laravel: проектирую базу данных, собираю инфраструктуру и довожу продукт до продакшна. Из сделанного: система онлайн-обучения, кадровый ЭДО, маркетплейс, сервис доставки еды.

Открыт к предложениям. Работаю удалённо, живу в Великом Новгороде.

Александр Соловьев за рабочим столом
Непрерывный стаж с 2002 года: 24 года в веб-разработке, из них восемь лет на Laravel.

Что ищу

Ищу место сеньор-бэкендера в продуктовой команде: PHP и Laravel, сложный домен, ответственность за архитектуру и базу. Руководил командами и знаю, чего это стоит, но сейчас интереснее писать код и отвечать за то, как система устроена.

Отдельно интересны продукты с регуляторикой: электронная подпись, кадровый ЭДО, фискальные чеки, госреестры — здесь путь уже пройден: КриптоПро, ФИС ФРДО, включение в реестр российского ПО.

С чем работаю

Бэкенд PHP 8, Laravel, REST API, очереди, WebSocket, Telegram Bot API, OpenAPI, КриптоПро CSP
Данные и поиск PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, проектирование схем и оптимизация запросов
Инфраструктура Docker, Docker Swarm, Docker Compose, GitLab CI/CD, Nginx, Traefik, Linux, FreeBSD
Фронтенд Nuxt.js с серверным рендерингом, Vue, JavaScript, HTML, CSS, PWA
Качество кода Pest, PHPUnit, Vitest, Codeception, Playwright, Selenium, PHPStan, ESLint, Sentry
Как работаю TDD, DDD, code review, статический анализ, Scrum. В ежедневной работе использую ИИ‑ассистентов — это заметно сокращает срок вывода продукта на рынок

Практикую внедрение зависимостей, держусь принципов DRY, KISS, SOLID и YAGNI. Проектирую по DDD: в кадровом ЭДО домен вынесен в отдельный слой без единого импорта фреймворка, агрегаты общаются через интерфейсы репозиториев. Из экосистемы Laravel плотно работал с Eloquent, очередями, уведомлениями, политиками доступа, form-requests, ресурсами и Reverb, а также с пакетами spatie/laravel-data и spatie/laravel-permission.

Личный проект

с июля 2026 Свободное время

Ordyx — задачи и тайм-трекинг

Публичный бесплатный сервис ordyx.ru — делаю в одиночку и сам им пользуюсь

220 тестов на Pest103 на Vitest71 e2e на Playwright

  • Продукт целиком мой: спецификация, архитектура, база, бэкенд, фронтенд и инфраструктура. Laravel 12 и PostgreSQL, Nuxt 4 с Nuxt UI, Redis под кэш и очереди, вход без пароля — код на почту. Интерфейс на русском и английском.
  • Проекты с подпроектами и контрагентами, задачи с приоритетами и сроками, журнал времени, перенос просроченных задач на выбранный день одним действием.
  • Приложение ставится как PWA, а лендинг отдаётся готовым HTML ради индексации: SSR включён глобально и точечно снят с маршрутов приложения. О новой версии клиент узнаёт из http-заголовков от бэкенда и предлагает обновиться.
  • Акт с приложением и счёт собираются из шаблонов и рендерятся в PDF через Gotenberg. Отчёт за период в CSV и сводка времени по проектам.
  • Прод — Docker Swarm, выкладка из GitLab CI: сборка образов с кэшем слоёв в registry, тесты, деплой из main, откат ретраем джобы. Sentry на бэкенде и фронтенде с загрузкой source maps.
  • Каждая ветка поднимается отдельным стеком со своими томами и своим доменом — скриптом из репозитория, рядом с нетронутым рабочим окружением.

Опыт работы

декабрь 2020 — настоящее время ООО «Проводник», Санкт‑Петербург

Программист-разработчик

Основное место. С мая 2025 по июль 2026 — частичная занятость, параллельно с «Силой кода».

Платформа онлайн-обучения edu.provodnik.ru

500+ курсов60 000 учеников2 400 организаций50 000 документов с ЭП90 % под автотестамивключена в реестр российского ПО

  • Спроектировал архитектуру системы и базу данных, разработал ядро платформы: LMS, CMS и систему тестирования.
  • Оптимизировал платформу под 500+ одновременных пользователей. Руководил тремя разработчиками, поставил CI/CD и отвечал за развёртывание на серверах.
  • Сделал модуль электронной подписи документов: договоры, счета, акты, приказы, протоколы, дипломы, удостоверения. Подписание вынес в отдельный сервис — HTTP-API над КриптоПро CSP: откреплённые и совмещённые подписи, несколько подписантов, подписать можно только установленным сертификатом, контроль сроков сертификатов и лицензии. Сервис живёт отдельным стеком в Docker Swarm, наружу не публикуется и доступен только из внутренней сети; ключи и хранилища сертификатов в томах переживают пересборку. Подлинность документа проверяется сканированием QR‑кода.
  • Собрал платёжный контур: ЮKassa и онлайн-касса Атол с фискальными чеками, API банка Точка с автосопоставлением поступлений и заказов, акты сверки, ЭДО СБИС, выгрузка в 1С, amoCRM и SMS-шлюз.
  • Разработал систему скидок: корзинные правила, накопительная лояльность, персональные скидки и промокоды — расчёт идёт автоматически по правилам из админки. Следом сделал партнёрскую программу с начислением вознаграждений и выплатами.
  • Написал мгновенный обмен сообщениями на WebSocket, а уведомления отправляются по трём каналам: почта, личный кабинет и мессенджер МАКС — бот с привязкой аккаунта по одноразовой ссылке и настройками по типам событий.
  • Внедрил поддержку SCORM — импорт пакетов и отслеживание прогресса обучения. Оптимизировал передачу данных от SCORM-пакетов на фронтенде и на бэкенде.
  • Автоматизировал отчётность в ФИС ФРДО: сведения о выданных документах об образовании собираются по шаблонам реестра и уходят ответственному каждую ночь.
  • Собрал витрину для трафика: ежедневные фиды курсов для Яндекса, Хабр Карьеры, РБК и sravni.ru, микроразметка JSON-LD.

Кадровый ЭДО kedo.provodnik.ru

14 модулей102 эндпоинта800 тестов на Pest236 на Playwright

  • Спроектировал и в одиночку написал второй продукт компании: мультитенантная архитектура, домен по DDD, REST API по OpenAPI. PHP 8.5, Laravel 12, Nuxt 4 с SSR, PostgreSQL, Redis, Reverb; PHPStan level 10.
  • Ядро сервиса — конструктор видов документов и маршруты подписания: поля формы настраиваются в админке, печатная форма собирается из .docx-шаблона и отдаётся в PDF. Маршрут разворачивается из сценария и дальше идёт независимо от его правок: согласование, утверждение, подписание, ознакомление, простая электронная подпись одноразовым кодом, замещения, график отпусков.
  • Связка с платформой идёт через её внешний API: курсы, организации по ИНН, учебные группы, импорт сотрудников, пакеты документов на группу.

май 2025 — июль 2026 ООО «Сила кода», Великий Новгород

Руководитель отдела разработки, Full-Stack (PHP + DevOps)

Маркетплейс с нуля

Соучредитель, вместе с учредителем «Проводника». Основное место в этот период.

5 месяцев до продакшнакоманда 6 человекдеплой меньше 10 минут

  • Спроектировал архитектуру маркетплейса и вывел его в продакшн: каталог с фасетным поиском, модерация товаров и магазинов через версии сущностей, чаты, интеграция с Telegram, генерация PDF-документов, аналитика.
  • Вёл команду по Scrum: два фронтендера, дизайнер, три тестировщика. Планирование спринтов, ревью кода, приёмка задач.
  • Бэкенд и инфраструктура целиком на мне: PHP 8.4 и Laravel 12, REST API по OpenAPI-спецификации, очереди и кэш в Redis, поиск на Elasticsearch, WebSocket на Reverb, данные в PostgreSQL.
  • Собрал финансовый контур площадки: приём платежей через ЮKassa с фискальными чеками и возвратами, удержание комиссии с каждой продажи, балансы продавцов, выплаты, счета и акты сверки.
  • Сделал автоматическую выдачу цифровых товаров — лицензии, ключи и подарочные карты уходят покупателю без участия человека, в том числе запросом к API продавца.
  • Развернул кластер на Docker Swarm с Traefik и собрал CI/CD в self-hosted GitLab: обновление без простоя с автооткатом при неудачном деплое.
  • Держал качество кода: PHPStan level 10 на всём проекте, тесты на Pest в CI, Sentry на бэкенде и фронтенде. Участвовал в разработке фронтенда на Nuxt.js с SSR.

с 2019 года GlobalCode

Программист-разработчик

Сервис доставки еды yam‑box.ru

Проектная занятость: подключаюсь к задачам компании по запросу.

  • Написал основную часть серверной логики сервиса доставки еды: каталог и меню, корзина и заказы, личный кабинет, админка, API для витрины на Vue. Интеграция с IIKO: импорт меню, городов, терминалов доставки и типов оплаты, программа лояльности на бонусных кошельках. Заказы уходят в IIKO; если отправка не удалась, заказ письмом уходит ответственному — клиент не остаётся без доставки. Затем обмен перевёл на IIKO Cloud API.
  • Подключил ЮKassa и эквайринг Сбербанка — оба провайдера убрал за общий интерфейс с фабриками. Собрал позиции фискального чека с учётом частичной оплаты бонусами.
  • Вход по номеру телефона: код в SMS отдельной очередью, защита от спама, подтверждение по flash-call и голосовому звонку.

январь 2018 — декабрь 2020 ООО «Справка.РУ»

Программист-разработчик

Справочник организаций России, Беларуси и Казахстана

3 страны4 приложения в монорепозитории14 своих composer-пакетов

  • Спроектировал архитектуру и схему базы, написал техническое задание, выбрал стек. Собрал Yii2-монорепозиторий — публичный сайт, админка, JSON-API и консоль — и разработал разделы: каталог организаций, товары с характеристиками по категориям, акции, вакансии и резюме, отзывы с рейтингом, личные сообщения.
  • Сделал справочник мультидоменным: Справка.РУ, .BY и .KZ работают на одной кодовой базе — страна, валюта, цены, домен почты и куки выводятся из хоста запроса, а город посетителя определяется по IP.
  • Собрал монетизацию: премиум-статус организаций с тарифами, сроками и скидками, приём платежей через ЮKassa с формированием чека, счета и акты в PDF. Партнёрская программа: роли и правила в RBAC, дерево рефералов, начисление вознаграждения с каждого платежа по уровням, заявки на вывод с реквизитами.
  • Закрыл жизненный цикл карточки организации: заявки на изменение с сохранением прежних данных и откатом, заявки на удаление, передача организации новому владельцу, история правок — всё с модерацией в админке.
  • Сделал поиск по каталогу с фильтрами и подбором ближайших организаций на PostGIS, карты — на собственном виджете к Яндекс Картам. Под трафик: генерация sitemap по всем разделам и городам, посадочные страницы категорий и ротация выдачи, чтобы платные карточки не выводились всегда в одном и том же порядке.
  • Перевёл проект с MySQL на PostgreSQL, закрыл автотестами на Codeception — unit, functional и acceptance в браузере через Selenium. Виджеты и поведения Yii2 вынес в собственные composer-пакеты. Распределял задачи в команде и принимал решения по развитию проекта.

2002 — 2017 ЦИТ, «Решение», РЦИТ, собственное ИП

Программист

Великий Новгород

15 летCRM на 44 региона1 000+ сайтов госучреждений

  • Сайты, веб-приложения и серверы под Linux и FreeBSD — от вёрстки и бэкенда до администрирования.
  • CRM для компании с региональной сетью, а также CMS, на которой держались сайты государственных учреждений.
  • Из заказных проектов: ohotta.ru, domoteka.su, truvorhotel.com — и ещё много других.

Образование и языки

2010 Современная гуманитарная академия, Москва — высшее, информатика и вычислительная техника
Языки Русский — родной. Английский — A2, читаю техническую документацию