Go-разработчик, Коммуникации по заказам
Описание
Привет! Это команда «Коммуникации по заказам» из отдела заказов. Мы занимаемся коммуникациями с покупателями по заказам: e-mail рассылки, пуши, нотификации и все уведомления, которые сопровождают заказ на его пути к клиенту. Наш стек Go, PostgreSQL, memcached, Kafka, gRPC. Что интересного Мы оперируем не запросами, а потоком событий: объём их обработки вырос с 500 до ~10 000 событий в секунду, и нагрузка продолжает увеличиваться. Это настоящий highload на событиях. Сервисы плотно переплетены с окружением: они синхронно ходят в ~35 смежных микросервисов, а ещё ~25 работают асинхронно через события (Kafka). Это требует грамотного параллелизма, каскадных вызовов и умения выстраивать устойчивые цепочки интеграций. Отдел (70 человек) состоит из проектных команд — у нас есть QA, SA, PM, frontend, а большинство составляют backend-разработчики. Много специалистов, с кем можно обменяться опытом; задачи стараемся давать по разным доменам, чтобы минимизировать рутину. При этом наша команда компактная — 8 человек, так что каждый видит результат своей работы и влияет на архитектуру. Вы будете Участвовать в разработке микросервисных систем. Писать код для сервисов, обрабатывающих большие потоки событий и объёмы данных. Мониторить и оптимизировать производительность системы. Примеры задач Наш бизнес-заказчики очень креативны и постоянно приносят новые и интересные задачи, поэтому скучно не бывает. Из-за роста потока событий постоянно приходится придумывать новые способы оптимизации кода и архитектуры. Мы серьёзно относимся к работе QA: разработчики думают, как сделать код более «тестируемым», и разрабатываем для этого инструменты. Нам важно Бэкграунд на бэкэнде на уровне middle. Опыт работы с микросервисной архитектурой и базами данных. Умение писать unit- и функциональные тесты. Умение профилировать и оптимизировать код.