Являясь единственной компанией, на 100% сфокусированной на Java, Azul создает Java-платформу для современных облачных предприятий. Мы переосмысливаем то, как клиенты используют Java, предоставляя им инструменты и аналитику, необходимые для более быстрой, производительной, надежной и недорогой работы Java-сервисов. Присоединяйтесь к одному из самых влиятельных участников сообщества Java и OpenJDK и помогите формировать будущее Java.
Falcon — это компилятор Just-In-Time (JIT), оптимизирующий код в Azul Platform Prime. Он компилирует горячий Java байт-код в высокооптимизированный машинный код и обеспечивает такую производительность Java, которую стандартные JVM не достигают. Falcon построен на базе LLVM.
Мы ищем старшего инженера по производительности компилятора, который будет отвечать за ключевые области производительности Falcon. Это не роль разработчика фронтенда компилятора и не разработка компилятора с нуля: Falcon — зрелый продукт, используемый в продакшене крупными предприятиями. Ваша задача — добиться максимальной эффективности генерируемого кода, определяя, какие оптимизации важны, проектируя их и обеспечивая измеримое ускорение на реальных рабочих нагрузках.
Вы будете работать в распределенной команде экспертов по компиляторам, имея прямое влияние на то, что Falcon будет оптимизировать в дальнейшем.
Что вы будете делать
- Полная ответственность за производительность Falcon для набора рабочих нагрузок или области оптимизации: анализ, проектирование, реализация, валидация
- Проектирование и реализация новых оптимизаций и улучшение существующих в middle end и back end: эвристики встраивания (inlining), оптимизации циклов, векторизация, анализ выхода из области видимости (escape analysis), спекуляция и деоптимизация, оптимизация GC-барьеров и вызовов во время выполнения (runtime call optimization)
- Повышение качества генерации кода на x86_64 и AArch64, включая адаптацию Falcon для новых аппаратных платформ
- Исследование сложных проблем производительности, сообщаемых клиентами, и преобразование результатов в улучшения компилятора
- Ревью кода, наставничество инженеров в команде и повышение уровня методологии обеспечения производительности
Минимальные требования
- Опыт работы более 5 лет в разработке оптимизирующих компиляторов или JIT-компиляторов
- Сильные навыки проектирования и программирования на C++ при работе с большими кодовыми базами
- Подтвержденный опыт внедрения оптимизаций компилятора с измеримым влиянием на производительность
- Глубокое знание теории оптимизации компиляторов и ее практических компромиссов: время компиляции, размер кода, корректность
- Сильные навыки анализа производительности: профилировщики, аппаратные счетчики, чтение и анализ генерируемой ассемблерной инструкции
Приветствуется
- Значительный опыт работы с LLVM-оптимизациями или генерацией кода; доступ commit в LLVM является плюсом
- Опыт работы с JIT-компиляторами для управляемых языков: HotSpot C2, Graal, V8, .NET RyuJIT или аналогичными
- Глубокое знание микроархитектуры x86_64 и/или AArch64
- Опыт работы с внутренними компонентами JVM: сборка мусора (garbage collection), деоптимизация, профилирование
- PhD в области информатики или значительный исследовательский опыт в области компиляторов
Что мы предлагаем
- Возможность оказать существенное влияние на развитие растущей глобальной компании
- Работа бок о бок с ведущими мировыми экспертами, вносящими вклад в экосистему Java
- Реферальная программа — помогите нам расти, привлекая отличных специалистов
- Премиальное IT-оборудование — MacBook Pro или любое другое оборудование по вашему выбору
- Конкурентоспособные оплачиваемые отпуска и больничные
- Гибкий график работы
- Полностью удаленная работа ИЛИ офисы в центре Праги / Лимассола / Белграда ИЛИ гибридный формат — ВЫБИРАЕТЕ ВЫ!
- Конкурентоспособная заработная плата