
PCIe Embedded Software Engineer, Staff
- San Diego, CA
- Permanent
- Full-time
Software EngineeringGeneral Summary:The PCIe software team is hiring talented staff-level embedded software / firmware engineers to develop PCIe, CXL, and higher-level protocol drivers for next-generation chipsets. Responsibilities include designing, developing, and debugging drivers that interact with other chips and peripherals across the PCIe high-speed bus. Additional responsibilities are optimizing software for performance and power consumption, working closely with hardware and systems teams developing low-level software, and contributing to future chipset architecture. PCIe is rapidly becoming the high-speed interface of choice for compute & embedded systems of all kinds and we'd love to have you as part of the team!Minimum Qualifications: • Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field.
- 2+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc.
- Master's Degree in Engineering, Information Systems, Computer Science or related field.
- 7+ years of experience in embedded software engineering
- Excellent skill in designing and developing with the C programming language
- Embedded software and real-time operating systems skills / knowledge
- Experience with ACPI, UEFI, Linux, and Zephyr is a plus
- Experience with PCIe, CXL, DMA, and high-speed interfaces is highly valued
- Exposure to writing software conforming to standards
- Experience optimizing software for performance and power
- Ability to read and understand hardware schematics
- Strong analytical and problem solving skills
- Good communication skills and ability to work with a diverse range of software, hardware, and system engineers
- Applies Software knowledge and experience to design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs.
- Analyzes user needs and software requirements to design and customize software for optimal operational efficiency.
- Designs and implements software modules for products and systems.
- Participates in the design, coding for large features, unit testing, significant debugging fixes, and integration efforts to ensure projects are completed to specifications and schedules.
- Performs code reviews and regression tests as well as triages and fixes issues to ensure the quality of code.
- Collaborates with others inside project team to accomplish project objectives.
- Writes technical documentation for Software projects.
- Works under supervision.
- Decision-making may affect work beyond immediate work group.
- Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc.
- Tasks do not have defined steps; planning, problem-solving, and prioritization must occur to complete the tasks effectively.