Инженер по разработке системного ПО/Аналитик/Инженер по качеству (компиляторы)
Описание
Команда разработки инструментов программирования приглашает студентов, молодых специалистов и опытных разработчиков для работы над высокопроизводительными оптимизирующими компиляторами. Основные направления деятельности: участие в разработке оптимизирующих компиляторов: от исследования и реализации новых оптимизирующих преобразований до отладки и сопровождения существующих программных продуктов; анализ производительности ПО и оценка эффективности оптимизаций с учетом особенностей современных процессорных микроархитектур; создание и поддержка системы автоматического тестирования компиляторов, верификация корректности преобразований, разбор регрессий. Требования к кандидату: знание основ построения компиляторов, классических алгоритмов и структур данных, знакомство с внутренними представлениями современных компиляторных инфраструктур (LLVM, GCC); понимание принципов организации современных вычислительных систем и микроархитектур CPU; владение языками программирования С и C++ на уровне, достаточном для разработки системного ПО; навыки работы в среде Linux, владение инструментами сборки и контроля версий; владение инструментами отладки и профилирования ПО, умение анализировать производительность кода; понимание методологий тестирования компиляторов, умение локализовать дефекты; владение Python/Bash, опыт работы с Docker и системами CI/CD (GitLab CI/Jenkins). Будет преимуществом: понимание принципов статического анализа и оптимизации кода; опыт работы с LLVM IR, MLIR или Gimple, опыт реализации бекендов и оптимизаций в компиляторах; практические навыки локализации узких мест производительности и анализа эффективности ассемблерного кода; умение находить потенциальные возможности для повышения производительности ПО с учетом особенностей вычислительной архитектуры; опыт построения и поддержки сложных CI/CD конвейеров (GitLab CI / Jenkins) для больших C++ проектов; опыт участия в разработке, отладке, тестировании сложных программных продуктов. Особенности работы: гибкий график, возможна частичная занятость и совмещение с учёбой; участие в реализации наукоемких проектов в области системного программирования; работа в экспертном коллективе инженеров, широкие возможности для профессиональной самореализации. Формат работы: офис в Москве (метро "Верхние Лихоборы"), гибрид, удаленно.