Портбилет TMC: сервис онлайн-бронирования командировок
Самостоятельное бронирование авиа, ж/д, отелей и трансферов сотрудниками компании с учетом корпоративной политики и автоматическим оформлением документов

Берем Symfony-проекты под ключ: доработка действующей системы, обновление PHP и фреймворка, нестандартная бизнес-логика. С PHP работаем с 2009 года. На оценке скажем, если задаче лучше подойдет Laravel или стек за пределами PHP.
Symfony — PHP-фреймворк и набор независимых компонентов, на которых написан например Laravel и Drupal. Предоставляет готовые компоненты для ролей, интеграций, очередей и границ модулей. Применим для разработки систем со сложной бизнес-логикой и высокими требованиями к безопасности и отказоустойчивости.
Подойдет если строите нетиповой бэкенд на PHP и готовы платить временем старших разработчиков за модульность. Для типового кабинета, быстрого MVP или нового публичного API может оказаться избыточным.
Доработка действующего Symfony-проекта, в том числе после другого подрядчика
Сложная бизнес-логика: роли, многошаговые процессы, интеграции с учетными системами
Обновления PHP и Symfony по плану, без прыжка через три мажора
Корпоративные порталы и B2B-кабинеты с явными границами модулей
PHP с 2009 года: Symfony, Laravel, Yii — подскажем, когда Symfony не ваш вариант
Честный выбор стека: если выгоднее Laravel или Node.js — скажем до договора
Фоновые задачи через Symfony Messenger: отчеты, рассылки, синхронизация — интерфейс не ждет тяжелую операцию
Backend под SPA, мобильное приложение или API для интеграторов
Принципы, по которым мы ведем проекты
С вами говорят те, кто делает проект. Спросите про границы бандлов, миграции Doctrine или стоимость перехода с Symfony 5 на 7 — разберем на сроках и рисках, а не «так принято в корпоративной разработке».
Договоренности, задачи и архитектурные решения фиксируем в системе управления задачами. Меньше споров «кто что сказал», проще держать обязательства.
Каждый проект живет в Git. Готовый функционал сразу попадает на тестовую среду — проверяете сценарии до боевого запуска. Развертывание — рутина: хоть правка в одну строку, хоть релиз на сотню задач.
Перед оценкой задачи смотрим код, Composer и историю миграций. На проекте трех лет и старше оценка растет нелинейно: сначала видно, где осела логика.
Код пишем так, чтобы с ним было комфортно работать самим — его подхватит и любая другая команда, в том числе ваша. Границы бандлов и правила оформления задаем с первых спринтов, а не «потом наведем порядок».
Исходники, права, окружения — ваши. Проект можно передать штату или другому подрядчику: тесты, инструкция по развертыванию и карта модулей входят в поставку.
Не обещаем, что продукт станет «как у Spotify». Отвечаем за то, чтобы Symfony-бэкенд оставался управляемым, а каждая доработка — предсказуемой по срокам и бюджету
Для типового кабинета Symfony не навязываем: Laravel часто дешевле на старте. На действующем проекте считаем отдачу доработки, а не переписывания «потому что так современнее».
Типовой кабинет быстрее собрать на Laravel. Symfony окупается, когда правила и интеграции нестандартные и готовые решения Laravel начнут мешать.
Учитываем последовательные обновления PHP и Symfony, поиск специалистов и онбординг. Рынок PHP сужается: уход одного человека бьет по срокам, если код держится на устных знаниях.
Права доступа и правила — зона команды, не фреймворка. Критичные сценарии покрываем тестами; тяжелые запросы Doctrine ловим до релиза, а не по жалобам пользователей.
Релиз Symfony 8 по сути вычищает устаревшее из 7.4 — принципиально нового мало. Регулярные минорные обновления дешевле редкого прыжка через три мажора.
Все, что не приближает релиз, — потери. Лишние бандлы, Messenger без задачи, кастомный слой поверх Doctrine «на всякий случай» — убираем из скоупа.
Symfony дает свободу собрать почти что угодно. С этой свободой нужно работать, и мы не скрываем, чем она бьет по срокам и бюджету.
Бизнес-правила оседают в контроллерах, слушателях и «божественных» сервисах. Файлы на тысячи строк, дорогие изменения, долгий онбординг новой команды.
Держим границы бандлов и явные контракты между модулями
Выносим правила в отдельные сервисы с тестами
Отставание на два-три мажора PHP или Symfony превращает апгрейд в цепочку миграций. Часто дешевле переписать кусок, чем тянуть последовательные релизы.
Фиксируем версии в Composer, проверяем сборку в CI
На оценке считаем и апгрейд, и переписывание — выбираете вы
Ленивая загрузка и гидратация дают N+1 и раздутую память на больших выборках. Ошибки ловят на проде, облачный счет растет быстрее трафика.
Профилируем запросы до релиза, а не после жалоб
Для тяжелых отчетов — явный SQL или отдельный контур чтения
Кастомная сборка бандлов и неявные зависимости: смена подрядчика — месяцы погружения вместо недель.
Передаем код с тестами, инструкцией по развертыванию и картой бандлов
Документируем границы модулей и зоны бизнес-логики
Молодые разработчики реже выбирают PHP. Поддержка дорожает, риск при уходе ключевого человека растет.
Пишем так, чтобы старший инженер подхватил проект без «устных знаний»
Если найм в штат буксует — усиливаем команду без раздувания фонда оплаты
На простом CRUD и MVP Symfony тормозит выход на рынок: выше порог входа, дольше настройка.
На оценке сравним с Laravel и Node.js под вашу задачу
Не тянем Symfony ради привычки команды, если бизнес платит за скорость
Что такое Symfony: компоненты и фреймворк
Какую проблему решает для бизнеса с долгим циклом жизни
Чем отличается от Laravel: Spring, явная конфигурация, обратная совместимость
Релизы два раза в год и длительная поддержка (LTS)
Цена обновлений и когда дешевле переписать кусок
Применяемые технологии Symfony-разработки
Рассказываем о нашем опыте с технологией в блоге
Разбираемся, что и зачем строим. Созвоны, бриф, разбор существующего репозитория, Composer и текущих версий PHP/Symfony. Фиксируем границы работ и риски обновления.
Помогаем сформулировать ТЗ, если его еще нет. Пользовательские сценарии, интеграции, границы бандлов, схема Doctrine, план развертывания.
Рабочие ветки, проверка кода, PHPUnit. Промежуточные демо на тестовой среде. Прогресс видно в работающем функционале.
Весь заявленный функционал реализован. Список задач закрыт. Дальше — доводка до боевой готовности.
Проверяем, выдержит ли система реальную нагрузку. Безопасность, очереди, отказоустойчивость, мониторинг.
Запуск в боевой среде. Релиз — первый день нормальной жизни продукта.
Продукт живет и меняется. Чиним, обновляем, наращиваем. Берем ту часть, которую держать в штате вам невыгодно.
Переносим данные, гасим зависимости, ничего не теряем. Финал — тоже инженерная задача.
Разные задачи — разные договоренности. Не подгоняем вас под один контракт. Выбираем формат под зрелость продукта и ваш аппетит к риску.
Для условий высокой неопределенности. Вы проверяете гипотезы, мы пишем код под них — без жестких оценок и сроков. Платите за реальные часы по итогам периода.
Оплата: фактические часы (T&M)
Кому: стартапам в поиске рабочей модели
Вы знаете задачу и считаете отдачу. Мы составляем ТЗ, фиксируем бюджет и сроки — и держим слово. Никаких сюрпризов в счете.
Оплата: фиксированная по смете (Fixed Price)
Кому: устоявшемуся бизнесу для оптимизации затрат
Есть дорожная карта, но жизнь вносит правки. Рамочный договор: смета на релизы и оплата по факту за то, что вышло за рамки.
Оплата: Fixed Price + T&M
Кому: проектам с просчитанной экономикой при средней неопределенности
Бюджеты, с которыми мы можем работать
Ответим в течение 1 рабочего дня
Уточним задачу и предложим формат сотрудничества
Подготовим оценку сроков и бюджета
Подскажем, что приложить: бриф, схему данных, список интеграций, ссылку на репозиторий
Запустим разработку после согласования условий
Соседние технологии PHP и форматы работы с Symfony