Портфолио и кейсы фрилансеров по разработке на PHP

Евгений Росляков
Евгений Росляков 2 дня 11 часов назад
Портал вакансий и резюме для Поволжья: одно приложение на Yii2 вместо Yii 1.1, CodeIgniter и Kohana без остановки сайта
Задача. Региональный портал много лет публикует вакансии и резюме, часть размещений платная. Публичная часть была на Yii 1.1, админка на CodeIgniter, API для партнёров на Kohana, у каждой своя версия PHP. Разработчики боялись лезть в чужой фреймворк, «добавить поле в резюме» занимало неделю, обновить PHP было страшно. Нужно было собрать всё на одном фреймворке без остановки, а партнёры не должны заметить подмены. Решение. Выбрал Yii2: публичная часть и так жила на Yii. Старое и новое приложения работали рядом на одной базе, веб-сервер переключал адреса на новую версию по одной: вакансии и поиск, отклики и резюме, платные размещения. Роли соискателя, работодателя и модератора описал через RBAC, слабые хеши паролей пересохраняются при первом входе без сброса. Админку с CodeIgniter перенёс модулем Yii2 с прежним видом. API на Kohana заменил REST-контроллерами с теми же адресами и ответами, проверял одинаковыми запросами к старому и новому. На поиск, отклики и платные размещения написал тесты, затем перевёл сайт на новую версию PHP. Результат. Один код и один фреймворк, обновление PHP перестало быть войной, партнёры ничего не меняли. Редкие отчёты старой админки ушли в архив, старый код удалят после сезона без жалоб. Евгений Росляков, сайты с 2016 года. Работаю как самозанятый по договору, закрывающие документы для юрлиц.
Евгений Росляков
Евгений Росляков 2 дня 11 часов назад
Маркетплейс услуг «мастер на час» в Москве и области: ядро на Symfony, поиск мастеров на Elasticsearch, очереди RabbitMQ
Задача. Через площадку заказывают сантехника, электрика, сборку мебели и мелкий ремонт, мастеров несколько тысяч со своими графиками и районами. Монолит на старом PHP тормозил, поиск по услуге и району вложенными запросами думал минутами. Уведомления мастерам терялись без повторных попыток, и заказ уходил конкуренту. Останавливать сайт было нельзя. Решение. Ядро написал заново на Symfony 6.4 с долгой поддержкой: каталог, профили, заказы, отзывы, админка. Микросервисы выделил только для поиска, уведомлений и платежей: у них разная нагрузка, и сбой в одном не должен ронять сайт. Поиск переехал на Elasticsearch: мастер хранится документом с услугами, рейтингом, районами, точкой на карте и свободными окнами, индекс обновляется при смене расписания. Между сервисами всё идёт через RabbitMQ: неудачная отправка повторяется с растущей паузой, затем попадает в очередь для ручного разбора. Переезд поэтапный, боевой сайт не останавливали ни разу. Результат. Поиск мастера занимает секунды вместо минут и показывает тех, кто свободен в нужном районе, менеджеры подбирают вручную редко. Уведомления не пропадают молча, пики сервис переносит спокойно. Инфраструктура сложнее и требует мониторинга, поэтому остальное приложение дробить не стали. Евгений Росляков, сайты с 2016 года. Работаю как самозанятый по договору, закрывающие документы для юрлиц.
Евгений Росляков
Евгений Росляков 2 дня 13 часов назад
Сайт и веб-приложение управляющей компании на Laravel: заявки жителей с фото и статусами, пропуска и кабинет диспетчера
Задача. Управляющая компания обслуживает несколько домов, жильцов больше тысячи. Заявки шли звонком, в общий чат дома и запиской консьержу: протечка в подвале тонула под сообщениями про парковку, житель не знал, взяли ли обращение в работу, пропуска для гостей диктовали охране голосом. Нужен был сайт компании и приложение, где у каждой заявки есть номер, исполнитель и статус, и простое для пожилых жильцов. Решение. Публичная часть: о компании, аварийная служба, документы, объявления по домам. Вход по номеру квартиры и коду из договора, без долгой регистрации. Приложение на Laravel, данные в MySQL: дома, подъезды, квартиры, заявки, исполнители, пропуска. Структуру базы рисовали с главным диспетчером. Житель выбирает категорию, прикладывает фото и видит ленту статусов, есть кнопка «не устранено». Пропуск гостю оформляется за минуту, охрана видит список на день. У диспетчера очередь, назначение исполнителей, сроки, просроченные аварийные заявки подсвечиваются. Расчёт сроков с выходными и праздниками и права доступа закрыты тестами на PHPUnit, которые идут перед каждым обновлением. Результат. Заявки в одной системе, повторных звонков меньше, охрана берёт гостей из приложения. Видно, где чаще протекает и какой исполнитель не успевает. Телефон остался: за пожилых жильцов заявку заводит диспетчер в том же журнале. Евгений Росляков, сайты с 2016 года. Работаю как самозанятый по договору, закрывающие документы для юрлиц.
Дмитрий Стоянцев
Дмитрий Стоянцев 4 дня 20 часов назад
Сайт падал с 504 в матчевый день
Во время матча сайт футбольного клуба РПЛ начинал отдавать 504. Причина: MySQL забивала очередь запросов синхронизации live-статистики (N+1, не было нужных индексов). Что сделал: убрал N+1, добавил кэширование и составные индексы под реальные запросы, написал разбор инцидента. Результат: синхронизация ускорилась с 75+ до 7-9 секунд, данные во время матча обновляются раз в 30 секунд.
Сергей Курьянов
Фрилансер готов решать задачи повышенной сложности и работать с крупными проектами.
Сергей Курьянов 11 дней 14 часов назад
Разработка и сопровождение CRM систем
Мой Стэк: PHP5.3-8.4, DB:Mysql, ClickHouse, Postgress, Larave/Symfony (возможен любой другой), Docker / Docker Compose, Memcached, PHPUnit / Codeception, Redis, RabbitMQ, Golang (базово), C/C++, JS/Angular/Vue Большой опыт работы на разных проектах. Создание, проектирование новых. Поддержка legacy, рефакторинг, оптимизация большой опыт Ключевой опыт: - Проектирование backend-архитектуры и развитие сложных бизнес-систем. - Разработка и поддержка REST/SOAP API и интеграций со сторонними сервисами. - Рефакторинг legacy-кода, постепенной модернизацией архитектуры и декомпозиция монолитных систем. - Оптимизация MySQL/ClickHouse под нагрузкой, работа с большими объёмами данных. - Работа с Docker, Redis, RabbitMQ и асинхронной обработкой задач. - Внедрение стандартов качества кода: PSR, Code Review, Unit-тестов.
ВЛ
Владимир Лагутин 11 дней 19 часов назад
XReady / XR Webix — административные панели и внутренние системы
Авторский инструмент для создания административных панелей и внутренних систем управления данными. Моя роль: автор и разработчик XReady / XR Webix. Задача: повторно использовать общие механизмы интерфейсов и работы с данными, чтобы в каждом проекте сосредоточиться на бизнес-логике. Инструмент формирует интерфейсы управления данными на основе моделей и применяется в коммерческих проектах, включая Reversal. Ранняя версия использовалась в Luxale. Стек: PHP, Yii2, Webix. Кейс показывает подход к проектированию повторно используемых компонентов, административных интерфейсов и прикладных бизнес-систем. Репозиторий содержит README и техническую документацию.
ВЛ
Владимир Лагутин 11 дней 19 часов назад
Infon — развитие PHP-продуктов, Stripe / PayPal и инфраструктура
Развитие и сопровождение двух действующих продуктов: видеохостинга и платформы форумов. Моя роль: Backend Developer — разработка продукта и инфраструктура. Март–декабрь 2025, part-time. Что сделал: • Разрабатывал и поддерживал функциональность существующих PHP-приложений. • Реализовал интеграции Stripe и PayPal. • Работал с legacy-кодом и несколькими технологическими стеками. • Решал инфраструктурные задачи Linux, nginx и Docker. • Настраивал сложные конфигурации SSL/TLS-сертификатов и доменов для платформы форумов, работал с CommuniGate Pro. Стек: PHP 7–8, MariaDB, Perl, Node.js, Linux, nginx, Docker. Кейс иллюстрирует комплексную работу с живым продуктом: развитие backend, внешние интеграции и устранение проблем на стыке приложения и инфраструктуры.
ВЛ
Владимир Лагутин 11 дней 19 часов назад
Reversal — e-commerce с нуля и интеграции
Разработка e-commerce платформы с нуля. Моя роль: backend-разработчик — архитектура, реализация и развитие продукта. Что сделал: • Спроектировал и разработал backend интернет-магазина. • Реализовал интеграции с платёжными системами и службами доставки. • Использовал XReady для административных интерфейсов и работы с данными. Масштаб: около 100 заказов в день. Стек: PHP, Yii2, PostgreSQL, Vue.js. Кейс показывает опыт самостоятельной разработки коммерческого продукта и интеграции внешних сервисов с бизнес-процессами магазина.
Вячеслав Клевлеев
Фрилансер готов решать задачи повышенной сложности и работать с крупными проектами.
Вячеслав Клевлеев 4 месяца назад
Бэкенд в реальном времени
Контакты: Телеграм: @itskleverbaby Телефон: +79255926213 Email: slava.klevleev@gmail.com Серверная часть для сервиса, где данные должны обновляться у всех пользователей сразу, без перезагрузки страницы. Laravel 12: события летят через WebSockets на Laravel Reverb, тяжёлые операции уходят в очередь через Kafka и не тормозят интерфейс, доступ закрыт JWT. API описано в Swagger — фронтенд или мобильные разработчики подключаются без лишних созвонов. Связка real-time с очередями — типовая история для чатов, дашбордов, торгов, любых сервисов с живыми данными. Здесь она собрана аккуратно и задокументирована.
Вячеслав Клевлеев
Фрилансер готов решать задачи повышенной сложности и работать с крупными проектами.
Вячеслав Клевлеев 4 месяца назад
Веб-сервис на Laravel под ключ
Контакты: Телеграм: @itskleverbaby Телефон: +79255926213 Email: slava.klevleev@gmail.com Заказчику нужен был один исполнитель на весь веб-сервис — от ТЗ до работающего продукта на сервере. Закрыл полный цикл: спроектировал базу, написал бэкенд на Laravel 12, собрал фронт на Vite и Tailwind, покрыл ключевую логику тестами PHPUnit, развернул. Код писал так, чтобы его потом было не больно поддерживать — миграции, понятная структура, README с инструкцией запуска. Заказчик получил готовый сервис и не собирал отдельно верстальщика, бэкендера и девопса.