ОПИСАНИЕ ДОЛЖНОСТИ
: 
System View, which is based in California (USA) and is a well funded startup working on cutting edge tools for software spanning multiple chips, opens a new branch in Armenia and is looking for a Compiler Engineer with experience in LLVMs internals and H-METIS algorithms. Knowledge of LLVM data structures is essential. Previous experience with code generation, vectorization or loop analys is a definite plus. Candidates with strong experience in C++ and with previous experience in EDA software development such as Synthesis, Place and Route will also be considered. The Compiler Software Engineer will be working in the fast-paced startup environment, generating code for a unique multi-core architecture. By joining the company during its development phase, the incumbent will have the opportunity to grow with it and hold leading positions.
Please note that junior specialists also can apply by participating in free courses delivered by Instigate and gain appropriate professional qualifications in compiler development and graph partitioning algorithms.
ОБЯЗАННОСТИ
: 
- Enhance System View INC's proprietary "vectorizing" compiler to achieve better quality of results. The task will include developing new tree matching algorithms to generate vector code for a custom vector processing unit, compiling and executing the code in cycle based simulator to determine the accuracy and performance of the generated code. The task will require detailed understanding of the data structure and execution passes of the LLVM compiler tool suite. The task will also include creating test-cases to be executed in a Jenkins automated testing environment;
- Analyze, design and develop loop optimization algorithms, including but not limited to: a) loop-reordering, b) loop-merging, and c) loop-splitting. The task will include creating benchmarks and validation suites to determine the accuracy and performance of the code generated. An in-depth understanding of LLVM loop analysis data structure is required for this task;
- Analyze, design and develop algorithms to partition large code into multiple smaller processing units. The task requires the candidate to be familiar with graph partitioning algorithms such as H-METIS. The generated code will be tested in a simulated environment.
ТРЕБУЕМАЯ КВАЛИФИКАЦИЯ
: 
- MS in Computer Science, with previous work experience in compiler related technology;
- Excellent knowledge of C++;
- Basic knowledge of compiler theory;
- Detailed understanding of the data structure and execution passes of the LLVM compiler tool suite;
- Familiarity with graph partitioning algorithms such as H-METIS;
- Understanding of LLVM loop analysis data structure is a plus; previous experience with code generation, vectorization, or loop analysis is a plus.
ПРОЦЕДУРА ПОДАЧИ ЗАЯВОК
: 
Interested candidates should send their CV to:
hr@instigate.am indicating the position title ("Compiler Software Engineer") in the subject line of the email.
Подавая на вакансию, пожалуйста укажите Career Center как источник информации о вакансии и сайт www.careercenter.am. Спасибо!
ЗАРПЛАТА
: 
Competitive salary (2,000,000 AMD and more) depending on experience and skills.