C/C++ GCC LLVM Full-Time Remote

Respect each other's time: read job description carefully and apply only if you meet required qualifications. We encourage applicants, even if not a perfect match, but essential qualifications must be met for this role.

Job summary

We are looking for passionate and self-driven individuals to join our team as we

  • evolve GCC and LLVM back-end and middle-end optimizations for ARMv8 and RISC-V;
  • optimize the performance of next-generation RISC-V cores with novel ISA extensions;
  • maintain assembler, linker, and debugger for the GNU toolchains;
  • analyze, model, and improve application and library performance;
  • develop dataflow-based optimizations

As part of our organization, you will work on projects that cover a diverse range of software development tools and performance challenges that occur at the intersection between hard- and software.

Responsibilities

As Compiler and Performance Engineer, you will be working on projects spanning GCC, LLVM, and key performance libraries as well as contribute to diverse technologies such as:

  • design and implementation of novel optimization passes
  • develop dataflow analysis and data-layout optimization
  • devise automated performance analysis tools using static and dynamic analysis
  • analyze and optimize key workloads

Requirements

Qualifications

  • Excellent C and C++ skills
  • Ability to write well-structured and maintainable code
  • Very good English communication skills (written and verbal)
  • Fundamental knowledge of compiler engineering (IR, IPA, instruction scheduling, etc.)
  • Hands-on experience with GCC and/or LLVM
  • Experience in analysing benchmarks and application performance
  • Ability to automate tasks using script languages
  • Knowledge of Gimple, LLVM IR, MLIR

Bonus skills

  • Contributions to open-source compilers, runtimes, or similar
  • Experience with application profiling

Organizational skills

  • Take ownership and responsibility for the work and the results generated.
  • Must be able to work independently and effectively with geographically distributed teams
  • Can self-discipline and are able to organise your work to always meet deadlines and complete projects on time.
  • Must be able to communicate and report effectively, clearly, and in a structured manner
  • Pay close attention to the company’s development and show proactive interest in participating.

If you identify yourself and your qualifications with our requirements and values, please let us meet.