PHP-разработчик
Департамент информационных технологий создает и развивает цифровые проекты, которые делают столицу комфортнее, а жизнь горожан — удобнее и мобильнее. Для системы управления столицей технологии — это незаменимый инструмент, который применяется во всех отраслях экономики, городского хозяйства и социальной сферы. А для миллионов горожан — повседневный помощник, который позволяет получать сотни услуг и сервисов в удобном цифровом формате в режиме 24/7.
МосБилет обеспечивает городу единую управляемую билетную экосистему для культурной отрасли: от покупки на сайте bilet.mos.ru и использования билета до сервисного сопровождения и отраслевой аналитики.
Что нужно делать:
- переносить backend-сервисы и их базы из инфраструктуры портала в инфраструктуру Мосбилета: миграция данных, перенастройка конфигураций, проверка сохранности связей
- разрывать зависимости от инфраструктуры сборки подрядчика: сейчас все PHP-сервисы собираются из репозитория пакетов подрядчика: нужно поднять собственный Satis и вычистить зашитые в пакеты данные
- настраивать мост между нашей шиной RabbitMQ и шиной портала: есть внешние потребители, которые остаются на стороне портала, им нужно доставлять события с фильтрацией
- переводить сервисы на собственный контур наблюдаемости: Sentry, Graylog, Grafana, Rancher
- работать с миграцией данных: центральный сервис контура написан на PHP 7.4 и Yii2 с компонентами Symfony использует одну базу MySQL ещё с двумя сервисами, эти данные нужно разделить. Это главная архитектурная задача, и решать её вам
- устранять последствия связанности: импорт из внешней билетной системы по таймеру генерирует тысячи операций записи, что может приводить перегрузкам БД по вводу-выводу
- развивать сервисы контура на Symfony 6.4 и 7.4 с API Platform, поддерживать REST-контракты и Swagger по каждому сервису
- поддерживать машину состояний редакционного конвейера
- вести интеграции с внешней билетной системой, файловым хранилищем, поисковым индексом города, системой авторизации и контуром лояльности
- поднимать замороженные интерфейсы, которые не обновлялись долгое время
- покрывать тестами изменяемую бизнес-логику, поддерживать статический анализ
- проводить код-ревью, в том числе кода внешних подрядных команд
- разбирать продуктивные инциденты до корневой причины и внедрять меры против повторения
Какие знания и навыки важны:
- отвечали за работающий сервис в продуктиве, а не только за задачи в спринт
- был опыт принятия системы, автора которой рядом не было — от другой команды, от ушедшего подрядчика, из легаси
- опыт изменений, которые нельзя было выкатить одним куском: миграция базы, переезд между средами или инфраструктурами, распил монолита, изменение контракта API с внешними потребителями
- Symfony в бою — проектирование и сопровождение сервиса, а не отдельные задачи. Версии от 5.4 и выше, текущие в проекте 6.4 и 7.4
- реляционная база на уровне «почему медленно» — PostgreSQL или MySQL: читаете планы запросов, работаете с индексами, проектируете схему
Будет плюсом:
- Yii2 в боевом опыте. Центральный сервис контура на нём. Опыт в нем будет большим плюсом
- опыт в билетных, платёжных, бронирующих или иных транзакционных системах: возврат, сверка, синхронизация статусов с внешней системой, пиковая нагрузка при открытии продаж
- вы уже переносили работающий сервис вместе с базой между инфраструктурами и знаете, где это обычно ломается
- API Platform — у нас версии 2.6 и 4.1, и есть задача перевода со старой на новую
- расшивка сервисов, сидящих на общей базе, с миграцией данных и сохранением совместимости на время перехода
- проектирование и сопровождение машин состояний с ролевой моделью
- опыт работы приёмщиком по отношению к внешней команде разработки: ревью чужого кода, замечания, приёмка
- государственные информационные системы, ГОСТ-документация, аттестованные контуры
- Kubernetes и Rancher на уровне пользователя: понимать, что такое реплики, лимиты и автомасштабирование, и как это влияет на код
- Graylog, Sentry, Jaeger, Swagger/OpenAPI, PHPStan или Psalm
- наставничество, технические интервью, ведение код-ревью
Что предлагаем:
- уютный офис в самом центре города (сейчас м. Таганская, но в скором времени будет м. Смоленская), где есть зоны для настольных игр, спортивные тренажеры, массажные кресла, своя кухня
- мягкий график - старт работы варьируется с 9 до 11, 5/2, гибридный формат (3 дня в офисе)
- работу в молодом, потрясающе дружном и профессиональном коллективе, где нет бюрократии, но есть мощное комьюнити по самым разным направлениям — от спорта до творчества/благотворительности
- возможность повышения квалификации – внутреннее/внешнее обучение, наставничество внутри команды, онлайн библиотека, планирование индивидуального карьерного трека
- социальный пакет — питание в офисе (молочная каша по утрам), материальная помощь в случае важных событий, скидки от партнеров на ДМС, связь, развлечения, подарки, спорт и т. д.
- льготные преимущества аккредитованной IT-компании
- ежегодное финансовое стимулирование по результатам работы
Стань частью команды ДИТ Москвы и воплощай в жизнь цифровые проекты столицы!