Overview
As a Principal Engineer on the Enablement Stack, you will develop software solutions for custom CPUs within a distributed team. The role focuses on Linux kernel, boot firmware, low-level libraries, platform performance, efficiency and security.
What you'll do
- Design, develop, create, modify and validate embedded and cloud edge software, applications and specialized utility programs.
- Collaborate with systems, hardware, architecture, test engineers and other teams to design system-level software solutions and obtain information on performance requirements and interfaces.
- Develop solutions for custom CPUs.
- Work on Linux kernel, boot firmware and low-level libraries.
- Collaborate with hardware and software teams to ensure optimal performance, efficiency and security.
- Optimize existing software and enable new architectural features.
- Define future high-performance SoCs and platforms.
- Collaborate with the performance team to identify hardware optimization areas.
- Create optimizations and drivers for high-performance platforms.
- Ensure existing Operating Systems run efficiently and identify opportunities for performance enhancements.
- Work independently with minimal supervision.
- Convey complex information to diverse audiences, including senior leadership and large groups, using verbal and written skills.
- Provide input to senior leadership that influences key organizational decisions.
- Execute multi-step tasks requiring simultaneous cognitive abilities and memory management.
- Develop new ideas and innovative products or processes using exceptional creativity.
- Use deductive and inductive reasoning to solve complex problems with advanced data analysis and interpretation.
What you'll need
- Bachelor's degree in Engineering, Information Systems, Computer Science or related field and 8+ years of Software Engineering or related work experience, or Master's degree in those fields and 7+ years, or PhD in those fields and 6+ years.
- 4+ years of work experience with a programming language such as C, C++, Java or Python.
- Deep understanding of computer architecture concepts, including high-performance designs, weak memory models, server platforms and the hardware/software interface.
- Proficiency in C, assembly language and build systems.
- Experience in systems programming with Python or similar languages.
- Knowledge of distributed version control systems and modern software development best practices.
- Expertise in developing software virtual platforms, low-level boot firmware and debugging tools, in pre-silicon and on hardware.
- Experience building to platform standards including UEFI, ACPI and SystemReady.
- Bachelor's degree in Engineering, Information Systems, Computer Science or related field and 4+ years of Software Engineering or related work experience, or Master's degree in those fields and 3+ years, or PhD in those fields and 2+ years.
- 2+ years of work experience with a programming language such as C, C++, Java or Python.
Nice to have
- Master’s Degree in Engineering or Computer Science.
- 15 years+ of experience in building software stacks for high performance systems.
- 10+ years building software stacks for high performance systems.
- 10+ years Linux kernel development.
Details
- Location: Bangalore, India.
- Work within a distributed team.
Read the full description and apply on the company’s own careers page.