5 мая 2025
Ищем инженера, который не просто пишет код, а понимает архитектуру и инфраструктуру сложных систем. Это про Node.js на пределе возможностей, микросервисы, WebSocket, отказоустойчивость и big data в real-time.
Что нужно знать и уметь:
Отличное знание core-механизмов, событийного цикла, ограничений производительности, GC и утечек памяти Node.js (JavaScript, без TypeScript);
Глубокое понимание построения распределённых систем: проектирование, масштабирование и сопровождение микросервисов, управление их зависимостями, межсервисной коммуникацией (REST, WebSocket, брокеры сообщений), а также интеграциями с внешними системами и API-провайдерами;
Проектирование и оптимизация real-time коммуникации на базе WebSocket: более 10,000 одновременных соединений, отказоустойчивые механизмы, балансировка, автоматическое восстановление, масштабируемость и минимизация задержек при передаче быстро обновляющихся данных;
Опыт разработки систем с нагрузкой от 1000 RPS и выше, работа с большими объёмами данных, критичными к времени обработки;
Понимание принципов работы брокеров сообщений, маршрутизации, очередей, acknowledgement-механизмов и масштабирования (RabbitMQ);
Эффективное использование Redis как кэша и брокера pub/sub, понимание режимов конфигурации: standalone, sentinel, cluster, а также принципов репликации и персистентности;
Базовые знания реляционных БД, грамотное написание запросов, понимание индексации, транзакций и производительности;
Умение писать Dockerfile, сборка, настройка окружений, оптимизация образов;
Базовое понимание пайплайнов CI/CD, подготовка и проверка кода перед деплоем (GitLab CI, TeamCity, и др.);
Реализация надёжных и восстанавливаемых архитектур с учётом шардирования, репликации, мониторинга, алертов и failover-процессов.
Что мы ожидаем:
Уверенный опыт в разработке высоконагруженных и отказоустойчивых Node.js-сервисов;
Понимание того, как проектируется, строится и поддерживается архитектура распределённых систем;
Способность работать с real-time данными и системами, критичными к latency;
Умение находить архитектурные слабые места и предлагать масштабируемые решения;
Опыт работы в сферах, связанных с ставками на спорт, гемблингом, финтехом или другими нагрузочными вертикалями будет плюсом.
Будет плюсом:
Знание Go;
Опыт работы с Kafka;
Опыт performance audit и профилирования Node.js-сервисов;
Участие в проектировании систем с десятками тысяч активных пользователей.