Все команды

Monorepo

Monorepo - это общая инфраструктура (soft&hard) для разработки и тестирования в ЛК. Она включает решения для написания кода, его сборки, тестирования и мониторинга - иными словами, пронизывает все процессы разработки в компании.

Наши вакансии

Откликнуться на вакансии этого и других направлений можно здесь.

Monorepo — это амбициозная цель, которая подразумевает не только единый репозиторий, но и: унифицированные подходы к разработке, инфраструктуру сборки/тестирования, общие инструменты разработки. Другими словами, мы делаем жизнь разработчиков наших продуктов более комфортной и эффективной.

Используемые языки

  • Python
  • C#
  • C++
  • .Net

Инфраструктура

Мы разрабатываем свою инфраструктуру — это позволяет более быстро и гибко подстраиваться под новые требования, что затруднительно если бы мы бы использовали сторонние решения для CI/CD. Кроме того, когда более 1000 разработчиков используют один общий инструмент на всех, то потратиться на разработку своей инфры и доделывать ее под себя кажется разумным решением, нежели чем обкладывать костылями сторонние решения.
Мы хотим чтобы trunk репозитория был «зеленым». Для этого перед каждым коммитом запускается проверка в виде валидационного билда: он выполняет сборку и тестирование изменившихся на коммите продуктов. Если сборка успешна разработчик получает «зеленый свет» и может закоммитить свои изменения. Для работы разработчика необходимо чтобы эти проверки были быстрыми и надежными, что делает роль разработчика инфраструктуры значимой и ответственной.

Работаем над

  • Thor

    многофункциональный бот, упрощающий внесение изменений в репозиторий

  • Air

    система для хранения артефактов. Качает траффик со скоростью 20 Гбит/c

  • Dashboard

    система для автоматического и ручного анализа результатов тестов

  • Asgard

    сборочный конвейер, который компилирует порядка 75 млн. единиц трансляции в день на 7000 процессорных ядрах в составе 250 серверов

  • Hive

    система для запуска тестов, производит порядка 13 млн. тестовых результатов в день, используя при этом 8000 виртуальных машин

  • Bazel

    адаптация сборочной системы от bazel (разработка компании Google) под наши нужды

Используемые технологии

Разные команды используют разные технологии и языки. Каждый может найти что-то на свой вкус.

0

Кого мы ждем в нашу команду

Стоит отметить, что нам важны не столько конкретные знания, сколько способность рассуждать.

Поэтому, в случае, если вы, например, не знаете как что-то устроено, достаточно рассказать, как это могло бы быть реализовано.

Как подготовиться к собеседованию

На собеседовании вам предстоит:

  • Решить алгоритмическую задачу:

      • Придумать алгоритм решения
      • Объяснить его словами и/или графикой
      • Оценить сложность
      • Реализовать решение на предпочитаемом вами языке программирования
      • Предложить тест кейсы к написанному коду
  • Поговорить о системном программировании:

      • Ответить на вопрос, как устроен некоторый кусочек типовой операционной системы.
  • Поговорить о предпочитаемом вами языке программирования

    • Продемонстрировать архитектурные навыки:

        • Продумать дизайн некоторой распределенной системы
        • Рассказать его словами и/или символьной графикой
        • Обсудить вопросы высокой доступности, масштабирования

    СОВЕТ

    Чтобы резюме было информативным, укажите максимально релевантные для вакансии опыт и знания.

    Примеры интересных задач

    Как сделать хорошее API чтобы другие инфраструктурные команды были счастливы?

    Как сделать, чтобы падения датацентров были незаметны для пользователя и инфра переживала их безболезненно?

    Как отмасштабировать сервис, чтобы он смог «тянуть» новую нагрузку?

    Как понять кому из клиентов сколько платить денег за серверы?

    Как понять что и где делать, чтобы удовлетворить желания пользователя?

    Как ускорить сборки и тесты на порядок?