Job Description
We are seeking a highly skilled Embedded Software Engineer with hands-on experience in x86-based platforms and embedded software development. The ideal candidate will have strong programming expertise in C/C++, a solid understanding of embedded system architectures, and exposure to BIOS, drivers, and high-speed I/O interfaces. This role involves close collaboration with hardware, validation, and customer teams to support platform bring-up, development, testing, and customer enablement activities.
Key Responsibilities
-
Design, develop, debug, and maintain embedded software for x86-based platforms.
-
Develop and optimize software using C/C++ for bare-metal, Linux, and RTOS environments.
-
Participate in platform bring-up activities, including Customer Reference Board (CRB) validation and testing.
-
Work on BIOS-level interactions and support low-level system initialization and configuration.
-
Develop, integrate, and debug device drivers and Board Support Packages (BSPs).
-
Collaborate with hardware teams to understand schematics, clocks, resets, level translators, and glue logic.
-
Support and validate high-speed interfaces, including PCIe (Gen4+), DDR4/DDR5/LPDDR4/LPDDR5, USB 3.x/4.0.
-
Analyze system-level issues and provide effective root-cause analysis and debugging solutions.
-
Create and maintain technical documentation, training materials, and development guides.
-
Provide test, validation, reporting, and customer support as required.
-
Work closely with cross-functional teams in an Agile or structured development environment.
Required Skills & Qualifications
-
Bachelors degree in Computer Science, Electronics, Embedded Systems, or a related field.
-
2 - 3 years of hands-on experience in embedded software development.
-
Strong proficiency in C/C++ programming.
-
Solid understanding of x86 architecture and embedded system fundamentals.
-
Experience with software debugging, problem-solving, and performance optimization.
-
Understanding of embedded software development flow including :
-
Bare-metal development
-
Linux application and driver development
-
RTOS concepts
-
BSPs and software libraries
-
Basic knowledge of scripting languages such as Python and Shell.
-
Excellent written, verbal, and interpersonal communication skills with fluency in English.
Preferred / Good-to-Have Skills
-
Basic BIOS knowledge and familiarity with system firmware concepts.
-
Experience working with Windows drivers on x86 platforms.
-
Exposure to x86 assembly language programming.
-
Knowledge of hardware schematics, CPU pinouts, and board-level debugging.
-
Experience with high-speed I/O validation (PCIe, DDR, USB).
-
Documentation experience in a training or enablement environment.
-
Prior involvement in customer-facing roles, technical reporting, or support activities.
(ref:hirist.tech)