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