Arm Compiler and Toolchain Engineer
- Remote: Yes
- Locations: Global
- Full-time/part-time: Part-time or Full-time
- Employment/Contract: Contract (preferred)
- Category: Engineering
- Experience: 4+ Years
As a provider of open-source services, Klara focuses on the art of open software and community-driven development. We believe that in order to foster creativity and advance technology in an ethical fashion we must continue fueling the spirit of open source.
At Klara, we rely on a mix of specialists and community to deliver FreeBSD, ZFS and Arm development services. We help customers standardize their environments running on FreeBSD and ZFS, and accelerate their platforms based on FreeBSD, ZFS and Arm.
About The Job
As an Arm Compiler and Toolchain Engineer, you will report to the CTO of Klara Inc. In your role as a Toolchain Developer you will help extend the LLVM compiler with new features, and help integrate those features into the target operating system. This work includes working directly with LLVM/Clang and FreeBSD upstream, to add or extend features and support the latest platform and CPU extensions, mitigations, and safety features.
- Compiler and toolchain development. Extending the toolchain to support platform extensions and developing operating system support for compiler features and mitigations.
- Platform bring-up and enablement. Resolving issues and enabling additional platform features and CPU extensions on new platforms.
- Develop, analyze, and modify CPU-centric system software for kernel, and bootloader
- Design and implement prototype software to demonstrate and analyze new ideas and concepts
- Derive, document, and present high-level system requirements from the associated detailed technology requirements.
Skills and Qualifications
- Strong C and C++ programming skills along with good knowledge of data structures
- Experience with toolchain development: compiler, assembler, linker, and runtime library
- Good understanding of CPU architecture (core, cache, memory models, multiprocessing, coherency etc.) and associated hardware blocks (cache controllers, timers, interrupt controllers, etc.)
- Programming in ARM assembly language, familiar with ARMv7, AARCH64, and X86_64 instructions
- Familiarity with ARM Platform features like pointer authentication
- Familiarity with compiler and OS security features such as Sanitizers and ASLR
- Understanding of CPU-dependent aspects of virtual memory (page tables, address space, etc.)
- Familiarity or experience contributing to open-source software
If you’d rather talk to us via e-mail, just drop us a line at joinus [at] klarasystems.com.