Разрабатывать и поддерживать full-stack-продукты и production-сервисы.
Работать с реляционными и нереляционными базами данных, кэшированием, очередями и потоковой обработкой.
Создавать интерфейсы на Vue для использования на терминалах и планшетах; разрабатывать интерфейсы реального времени на WebSockets, желательно Socket.IO.
Разбираться в незнакомых production-сбоях и находить первопричины.
Развертывать горизонтально масштабируемые сервисы, устойчивые к отказам экземпляров и медленным зависимостям, с автоматическим добавлением или сокращением ёмкости.
Работать с существующими частями платформы на PHP и незнакомыми кодовыми базами, в том числе с использованием AI-инструментов на протяжении всего цикла разработки: при проектировании, написании и рефакторинге кода, самостоятельном ревью и автоматизированных ревью PR.
Общаться с командами в США и Израиле и объяснять технические решения людям, не участвовавшим в обсуждении дизайна.
Создавать поддерживаемые сервисы с чёткими границами, читаемым кодом, полезными тестами и наблюдаемостью; учитывать опыт людей, использующих интерфейс, и доводить проблемы до полного решения.
Requirements
6–8+ лет опыта разработки full-stack-продуктов, включая опыт в роли старшего инженера.
Глубокий опыт работы с Node.js и TypeScript в full-stack-разработке и спроектированными production-сервисами.
Опыт с PostgreSQL или MySQL: проектирование схем, индексы, оптимизация запросов, транзакции и поведение под нагрузкой; знакомство с Redis или MongoDB, кэшированием и инвалидацией.
Опыт работы с очередями и потоковой обработкой: Kinesis, Kafka, RabbitMQ, SQS, BullMQ или аналогичные инструменты; понимание порядка сообщений, дубликатов, повторной обработки и задержек потребителей.
Навыки фронтенд-разработки, включая архитектуру компонентов, управление состоянием и прогрессивные веб-приложения. Используется Vue; также подходит опыт с React или Angular.
Опыт разработки интерфейсов реального времени на WebSockets, желательно Socket.IO.
Отличные навыки отладки, способность работать с незнакомым кодом, в том числе с применением AI.
Опыт развёртывания горизонтально масштабируемых и отказоустойчивых сервисов.
Практическое использование AI-инструментов как основной части инженерного процесса.
Внимание к поддерживаемости, качеству кода, тестированию, наблюдаемости и пользовательскому опыту.