Разработчик транслятора/кодогенератора

Разработчик транслятора/кодогенератора

Требуемый опыт работы: 3–6 лет
Полная занятость, полный день

Задачи

Создание оптимизирующего кодогенератора с графического языка в язык С
Разработка и проектирование оптимизационной ступени плана расписания параллельных вычислений над потоками данных
Участие в командном проектировании прочих частей продукта (кроме компилятора)
Мы работаем над созданием нового программного продукта – программно-определяемой лаборатории «ПОЛАТОР». Продукт предназначен для автоматизации исследований и быстрого прототипирования, решающий:
Моделирование динамических систем, основанных на цифровых сигналах и событиях
Лабораторное моделирование цепей, с участием виртуальных, смешанных и аппаратных компонентов
Авто тестирование при производстве высокотехнологичной промышленной продукции РЭА и приборостроения
Создание алгоритмов и средств SCADA HMI для целей АСУ-ТП
Вам предоставляется уникальная возможность реализовать свои амбициозные идеи, как в части идей по интерфейсу HMI, так и функционального наполнения разрабатываемого продукта, так как ваше участие предполагается с самого начала проектирования и разработки нашего продукта. Ваша экспертиза по данной теме будет очень востребована.
Вакансия ожидает одну из ключевых фигур – Разработчика транслятора/кодогенератора, задачами которого будет является формирование облика программного продукта, а также сопутствующих материалов.

Обязанности

Создание оптимизирующего транслятора с графического языка программирования в язык С
Разработка и проектирование оптимизационной ступени плана расписания параллельных вычислений над потоками данных
Работа с техническим персоналом по созданию нового продукта (коллеги-разработчики, аналитики, архитекторы)
Работа в существующей экосистеме CI/NightBuild/AutoBuild/AutoTest/CodeStandard на основе GitLab
Команда разработки ведет разработку на следующем стеке технологий: кросс-платформенный код C/C++, библиотеки собственной разработки и OpenSource, IEC61131, LabVIEW/MATLAB

Требования

Понимание архитектуры LLVM, GCC или иных OpenSource, либо коммерческих компиляторов, их бэкендов
Отличное знание языка C++
Владение языком моделирования UML
Уверенные владение методами объектно-ориентированного проектирования, структур данных, основных шаблонов проектирования и умение применять их на практике
Понимание низкоуровневой архитектуры CPU. Опыт разработки (или участие в разработке) оптимизирующих компиляторов для современных архитектур
Понимание организации многоступенчатой оптимизации
Понимание либо владение языком внутреннего представления (например, LLVM IR для LLVM, либо эквивалент)

Будет плюсом

Опыт использования или знакомство с LabView / SCADA / MATLAB
Опыт разОпыт применения средств моделирования, в частности, SPARX Enterprise Architect
Твердое владение каким-либо дополнительным объектным языком программирования
Научная и исследовательская деятельность, направленная на написание публикаций, выступление на конференциях, изучение существующих техник работы компиляторов
Опыт работы в области разработки тиражируемого программного обеспечения не менее 5 лет на позициях «Разработчик ПО». Опыт работы в команде, именно в продуктовой разработке ПО
Технический английский – будет необходимо для чтения документации
Какая-либо квалификация по моделям программирования GPU, таких как Metal, OpenGL, DirectX, OpenCL либо CUDA

Условия

З\п по результатам собеседования
Трудовой кодекс
График работы с 9-18 (так как предусматривается командная работа, то часы устанавливаются единым голосованием)
Собственная кухня
Удаленный доступ предусматривается для всех сотрудников: доступ к рабочему месту, некоторым корпоративным сервисам, корпоративный мессенджер и тд., однако мы ориентируемся на преимущественную работу в офисе. Естественно, после разрешения проблемы пандемии

Мы ждем вас!

Наше с вами знакомство проходит в три этапа: контакты с HR, техническое интервью в офисе, информирование по результатам конкурса на должность.

Если вы считаете свою квалификацию немного недостаточной, но видите для себя возможность развития по данному направлению, присылайте свое резюме, которое будет также рассмотрено с проведением первичного интервью. Мы набираем несколько человек на каждую вакансию, и рады всем талантам!