билет 1: схему можешь написать - джун, пролог - мидл, идрис - сеньёр.
билет 2: интерпретатор - джун, ллвм эмитер - мидл, новый нескучный ISA - сеньёр.
билет 3: всё склеено мейком - джун, кастомная сборка - мидл, всё склеено мейком - сеньёр 😂
Б1: Когда игрушечная Схема написана, то игрушечный Пролог пишется на call/cc довольно быстро, я бы сказал, что прописать аккуратно механизм call/cc сложнее, чем потом прописать Пролог даже с некоторыми оптимизациями.
Игрушечный Idris -- это примерно нечто сравнимое по сложности с самой Схемой: с одной стороны, нужна абстрактная интерпретация свободных переменных, а с другой не нужны call/cc и макросы, которые в Схеме доставляют проблем.
Если речь идёт о полноценных Схеме, Прологе и Идрисе, то ранжирование тоже не очевидно. В каждой из тем есть свои серьёзные вызовы. В Схеме -- это оптимизация, в Прологе -- методы оптимизации и эффективный поиск, совмещённый с вводом/выводом, в Idris -- заморочки с тем, как организовывать контексты вывода типов, неявные (implicit), взаимную рекурсивность, кодировки для индуктивных типов, проверки тотальности и прочее такое. Впрочем, и в Схеме, и в Прологе, придётся тоже работать (при оптимизации) с выводом и типов, и свойств функций, а в Idris надо работать с оптимизациями, хотя тут полегче.
Б2: сделать свой нескучный IR гораздо проще, чем уложиться в многолетние наслоения идей и костылей в LLVM. Чисто технически LLVM требует более обширных знаний и больших навыков, чем изобретение свеженького, красивого и уютного IR.
Б3: gnu make уже давно поддерживает сценарии на Guile, поэтому, теперь для make кастомное и не кастомное -- понятия довольно расплывчатые.
Да и вообще, по опыту, generic знания корпорациям не нужны, им нужны навыки пользования теми инструментами, которые они используют в решении тех задач, которые они решают. Корпорации, обычно, просто прогоняют студней через свои узкие спецкурсы, чтобы на выходе получить специалиста под себя.