На интервью мы общаемся со специалистами с разным бэкграундом и опытом в языках программирования. Поэтому для нас в первую очередь важны базовая подготовка и знания. Важно понимать, что происходит под капотом: как Python работает с памятью, чем отличается от других языков программирования. Обычно мы просим решить несложные практические задачи, позволяющие показать свои знания в разных областях применения
Python
Вопросы о языке обычно делятся на две группы: особенности синтаксических конструкций и конкурентное исполнение кода.
К первой группе относятся вопросы про контекстные менеджеры, генераторы и декораторы, нюансы их исполнения и области применения. Вторая группа — это вопросы про asyncio, треды и процессы, их принципиальные отличия и релевантность задачам.
Архитектура
У нас огромная высоконагруженная система из тысяч различных компонентов. Каждый день мы строим решения, которые должны легко масштабироваться и быть отказоустойчивыми. Большинство из них мы создаём сами с нуля, так как рынок подходящих решений не предлагает.
Алгоритмы*
Мы ожидаем, что вы знакомы с алгоритмической базой, методами сортировки и обхода графов. Также важно уметь оценивать сложность алгоритма в нотации big O.
Базы данных*
Важно понимать отличия реляционных и нереляционных БД, а также сценарии использования, проектирование схем и основы оптимизации под высокие нагрузки (репликация/шардинг).
ОС и сети
Нам важно, чтобы инженеры имели представление о работе в терминале, сетевом стеке Linux и базовом troubleshootin-e: чем заняты ресурсы, просмотр логов и т.д.
Мы просим не использовать сторонние технические средства или помощь третьих лиц / ИИ во время интервью. Компания оставляет за собой право аннулировать результаты интервью в случае несоблюдения этих правил
