Разработчик распределенных систем

МоскваC++, C#, Java, ИнфраструктураСпециалист
Яндекс — это данные. Это то, что мы потребляем и производим. Мы обрабатываем петабайты данных на сотнях тысяч машин в миллионах контейнеров каждую секунду. И этой обработкой нужно эффективно управлять.
Мы разрабатываем Kubernetes в Яндексе — Yandex Planner. Yandex Planner обеспечивает инфраструктуру управления ресурсами (оборудование) и сервисами (контейнеры) во внутреннем облаке Яндекса, где живут: Поиск, баннерные системы, кластеры MapReduce и просто все остальные сервисы Яндекса. Именно нам доверили разрабатывать решение, влияющее на весь Яндекс. Наша область интересов затрагивает всю инфраструктуру Яндекса: серверы, сети, пропускную способность и разделение I/O, предсказание нагрузки и распределение ресурсов, сетевые топологии внутри датацентров и между датацентрами. Реализуется это решение в виде особенно важных отказоустойчивых горизонтально масштабируемых географически распределенных систем.

Задачи, которые мы готовы доверить вам:

  • дизайн, разработка и автоматизация Yandex Planner и окружающей экосистемы;
  • анализ производительности, поиск узких мест, мониторинг и интерпретация работы системы, планирование роста и масштабированиe;
  • разбор сложных ситуаций как на уровне приложений, так и на уровне оборудования;
  • оптимизация прикладных и аппаратных решений;
  • взаимодействие с другими командами Яндекса для поддержки их решений в экосистеме Yandex Planner.

Вы сможете:

  • узнать технические решения, которые лежат в основе всех кластеров Яндекса;
  • принять участие в разработке высоконагруженных географически распределенных систем, контейнеризации, GPU и MapReduce в масштабе всего Яндекса;
  • сделать свой, лучший Kubernetes.

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

  • знаете C++, C# или Java и хотите писать на C++;
  • знаете классические алгоритмы и структуры данных;
  • ответственны и аккуратны.

Приветствуются:

  • опыт разработки сетевых, многопоточных и асинхронных приложений;
  • знание Linux, в том числе на начальном уровне;
  • умение программировать на скриптовых языках (например, на Python).
Мы понимаем, что опыт разработки высоконагруженных отказоустойчивых географически распределенных систем получить сложно, поэтому если у вас такого опыта нет, но по всем остальным критериям вы подходите, мы с удовольствием прочтем ваше резюме, встретимся, поговорим и всему научим!