Бэкенд-разработчик в команду Platform Runtime (IPC)

В работе мы ставим амбициозные цели и не останавливаемся на достигнутом. Поэтому для нас так важно, чтобы каждый участник большой команды Авито разделял культуру компании. Погрузиться в неё помогает Манифест, в котором собраны наши основные ориентиры — миссия, ценности, принципы работы manifesto.avito.com

О команде

Мы часть большой команды, которая занимается разработкой платформы PaaS.

Основная цель нашей команды — скрыть сложность синхронных и асинхронных взаимодействий от пользователей платформы — других инженеров в Авито, а также дать простые инструменты для работы с RPC, OpenAPI и асинхронными обменами.

Наши системы используют практически все сервисы в Авито, а от их стабильности и надёжности зависят ключевые критические бизнес-процессы и сценарии.

В нашей команде несколько продуктов и направлений разработки.

Первое направление, которым мы занимаемся — это RPC-фреймворк для синхронных межсервисных обменов. В это направление входят разработка библиотек для создания клиент-серверных приложений, кодогенерация клиентов и серверного кода, проработка и реализация общих для компании подходов по организации таких обменов. Мы используем собственный RPC фреймворк под названием Brief.

Второе направление: асинхронные обмены. Они позволяют сервисам обмениваться сообщениями через общую центральную шину под названием DataBus, а также использовать внутрисервисные очереди через центральную систему под названием Queues В качестве систем хранения мы используем Apache Kafka, Apache Pulsar, Redpanda. Каждая из данных систем обрабатывает более 10-15 млн. rpm нагрузки на запись и 15-20 млн. rpm на чтение.

Третье направление: предоставление Runtime Components для сервисов, включающие в себя workers, crons, functions и объединение их в Workflow Engine. В данном направление мы стараемся реализовать для разработчиков удобные, надежные и функциональные блоки для работы сервисов в production.

Примеры будущих задач:

  • разрабатывать control plane для управления конфигурациями шины данных DataBus и Queues;
  • проектировать и реализовывать подходы к централизованному управлению таймаутами и другими настройками межсервисных обменов;
  • заниматься задачами по улучшению Developer Experience для разработчиков в Авито;
  • участвовать в разработке Quasar — внутреннего решения для масштабирования консьюмеров в системах на базе Apache Kafka без необходимости в скейлинге числа партиций.

Мы ждём, что вы:

  • Уверенные навыки Golang или желание на нем писать при наличии strong skills в другом языке;
  • Понимание принципов микросервисной архитектуры и построения распредленных систем;
  • Наличие опыта работы с брокерами сообщений, например Apache Kafka, RabbitMQ, NATs или другими

Будет здорово, если вы:

  • работали в платформенных командах;
  • имеете опыт в работе с Kubernetes не только на уровне пользователя;
  • имеете опыт разработки инструментов для других разработчиков или библиотек.

Работа у нас — это:

-      возможность реализовать свои идеи в проекте с многомиллионной аудиторией;

-      талантливая команда, готовая поддержать ваши инициативы;

-      мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы;

-      прозрачная система премий, достойная зарплата — размер обсудим на собеседовании;

-      личный бюджет на обучение, который можно тратить на книги, курсы и конференции;

-      забота о здоровье: с первого дня у вас будет ДМС со стоматологией, в офисе принимают терапевт и массажист;

-      удалёнка из любой точки мира или замечательный офис в двух минутах от метро «Белорусская»: панорамный вид на центр города, места для уединённой работы и зоны отдыха.