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