Обязанности
— Проектирование, разработка и оптимизация нового функционала для серверной части проекта с учётом масштабирования и высокой производительности.
— Оптимизация и поддержка существующего кода, в том числе legacy.
— Проектирование и разработка сервисов, поддающихся горизонтальному масштабированию для ресурсоёмких задач.
— Написание PHPUnit-тестов.
— Базовая реализация frontend (JavaScript/TypeScript), в том числе минимальная вёрстка, которую можно будет передать на финальную доработку верстальщику.
— Взаимодействие с другими разработчиками для интеграции игровых функций.
— Пример первой задачи: добавить много игровых предметов, вникнув в игру и улучшив их конструирование. Мастер над предметами.
Требования
— Глубокое знание PHP, включая современные возможности (используется 8.5).
— Уверенное знание JavaScript/TypeScript и способность самостоятельно вносить изменения во frontend, в том числе с использованием Vue 3+.
— Умение реализовывать минимальную вёрстку для последующей передачи верстальщику.
— Опыт работы с MySQL или другой SQL-базой данных: понимание устройства и применения индексов, оптимизации запросов, транзакций, блокировок и конкурентной работы с данными.
— Понимание конкурентного выполнения: race condition, блокировки, атомарные операции; умение проектировать код, корректно работающий при параллельных запросах и воркерах.
— Понимание асинхронного программирования (ReactPHP или аналогичные подходы, включая опыт из JavaScript).
— Умение разрабатывать long-running приложения с корректным управлением состоянием, памятью и ресурсами между запросами, без их неконтролируемого накопления.
— Умение применять кеширование, понимать особенности и ограничения различных подходов.
— Понимание принципов доставки realtime-обновлений (WebSocket, Centrifugo и т.д.) и связанных с ними проблем.
— Умение проектировать и поддерживать unit/integration-тесты, выбирать необходимые границы тестирования и писать тестируемый код.
— Умение разбираться в существующем коде и предметной области, учитывать существующие ограничения и безопасно улучшать архитектуру без необоснованного переписывания работающих решений.
— Опыт самостоятельного проектирования и развития безопасного поддерживаемого production-кода: умение учитывать риски уязвимостей, определять границы и ответственность компонентов, их взаимодействие и зависимости, не усложняя решение без практической необходимости.
— Понимание особенностей безопасного деплоя и миграций в работающей системе.
— Уверенное владение Git.
Будет плюсом
— Опыт работы с Symfony 8, ReactPHP (или другими асинхронными PHP-фреймворками).
— Опыт работы с FrankenPHP или RoadRunner.
— Опыт работы с RabbitMQ или другими брокерами сообщений.
— Опыт работы с Centrifugo или другими realtime/pub-sub решениями.
— Понимание особенностей управления памятью и работы garbage collector в PHP.
— Опыт использования статических анализаторов кода, например PHPStan или аналогичных инструментов.
Условия
— Комфорт и оснащение: современный офис и персональное рабочее место с мощным «новым железом».
— Забота о сотрудниках: безлимитный кофе из кофемашины, печенье, конфеты, фрукты и отличная атмосфера с тонким юмором в коллективе.
— Удобный график: фиксированный рабочий день с 10:00 до 18:00 (работа в офисе).
— Финансовый и профессиональный рост: плановый пересмотр ставки раз в год, а также возможность персонального повышения за результаты.
— Премирование: материальная благодарность за отличия в работе.
— Собеседования только в офисе лично. Только офисный формат работы — удалёнку не рассматривают.