Обязанности
— Работать с PostgreSQL: проектировать структуру данных, писать и оптимизировать запросы, работать с индексами, транзакциями и миграциями.
— Разбирать и устранять ошибки и инциденты в работающем продукте, искать причины проблем, а не только устранять их последствия.
— Покрывать критически важную бизнес-логику автоматическими тестами.
— Проводить code review и участвовать в обсуждении технических решений.
— Поддерживать качество существующего кода, заниматься рефакторингом и постепенно сокращать технический долг.
— Выпускать стабильные и проверенные обновления в тестовый и production-контуры, учитывать обратную совместимость и возможность отката релиза.
— Декомпозировать требования на технические задачи, оценивать сроки и самостоятельно вести задачи от постановки до выхода в production.
— Поддерживать техническую документацию по реализованным решениям и API.
Требования
— Коммерческий опыт разработки на PHP от 3 лет.
— Уверенный опыт работы с Laravel.
— Хорошее понимание внутреннего устройства Laravel: Service Container, middleware, events/listeners, jobs, queues, validation, authentication/authorization и lifecycle приложения.
— Уверенная работа с Eloquent ORM, понимание его возможностей и ограничений.
— Опыт проектирования и разработки REST API.
— Понимание принципов построения клиент-серверных приложений.
— Понимание принципов stateful/stateless-архитектуры и особенностей long-running процессов.
— Практический опыт работы с очередями и Redis.
— Уверенное знание реляционных баз данных, желательно PostgreSQL: JOIN, индексы, транзакции, блокировки, планы выполнения запросов и оптимизация запросов.
— Понимание проблем конкурентного доступа к данным и способов их решения.
— Опыт работы с Git, Docker и Linux.
— Опыт работы с WebSocket или другими механизмами realtime-взаимодействия.
— Умение читать и разбираться в существующем коде, в том числе без полной документации.
— Опыт написания автоматических тестов.
— Понимание принципов SOLID, основных паттернов проектирования и умение применять их без избыточного усложнения архитектуры.
— Умение самостоятельно оценивать задачи, выявлять технические риски и доводить работу до результата.
— Опыт использования AI-инструментов в разработке и понимание того, что сгенерированный код необходимо проверять, тестировать и адаптировать под архитектуру проекта.
Условия
— Полностью удалённая работа.
— График 5/2 с понятным рабочим временем.
— Работа над действующим продуктом с реальными пользователями и реальными техническими задачами.
— Возможность напрямую влиять на технические решения и развитие проекта.
— Минимум бюрократии и возможность обсуждать технические решения внутри команды.
— Долгосрочное сотрудничество.
— Уровень вознаграждения обсуждается индивидуально в зависимости от опыта и технического уровня кандидата.