Required Linux Internals (Memory) Software Engineer
Description
We are reimagining high-performance computing. Our accelerated compute solutions leverage intelligent adaptive algorithms to vastly accelerate supercomputers, driving them forward into a new generation. Our new software-defined hardware architecture enables HPC to fulfill its promise of breakthroughs in all fields of advanced research.
At our company, everything we do is guided by three core values:
Professionalism: We strive for exceptional results through professionalism and unwavering dedication to quality and performance.
Unity: Collaboration is key to success. That's why we foster a work environment where every employee can feel valued and heard.
Impact: We're passionate about developing technologies that make a meaningful impact on industries, communities, and individuals worldwide.
We are seeking a top notch software engineer to drive forward the development of the full software stack and architecture behind our revolutionary coprocessor. You will demonstrate creative and critical thinking capabilities and have a genuine passion for tackling complex low-level software issues.
As part of the memory system team, you will work on design and implementation of new and enhanced features of the memory system to support high performance computing and AI applications in the Maverick accelerator runtime environment.
You will work closely with software engineers, hardware engineers, compiler developers and other stakeholders to enable the most efficient execution of applications on a large scale, multi threaded and highly distributed system across multiple disciplines with a deep OS Internals point of view.
Responsibilities:
Work on design and implementation of new and enhanced features of the memory system for the Maverick accelerator
Develop a high performance, low latency distributed unified virtual memory management system
Work on system software support for the next generation Maverick system
Define feature development scope and plan for successful product delivery.
Wide system impact through collaboration with software engineers, hardware engineers, compiler developers and other stakeholders.
Requirements: MSc/BSc in Computer Science or other equivalent educational experience.
3-5 years of advanced C++ experience, with excellent coding skills.
Deep understanding of the internals of operating systems, IPC, and multi-threaded programming
Familiarity with device and memory management in operating systems
Experience in Linux kernel development
Ability to work in a multi-task and dynamic environment
Excellent communication and teamwork skills
Strong problem-solving skills and the ability to analyze and debug complex issues.
Advantage - Familiarity with and passion for any of the following - machine learning, compilers, parallel programming, high-performance and massively parallel systems, processor and computer architecture.
This position is open to all candidates.